Bonjour,
Je viens récemment de migrer mon site en HTTPS et certains de mes scripts PHP ne fonctionnent plus... Cela concerne particulièrement le téléchargement forcé et sécurisé d'un fichier pdf. Faut-il des header spécifiques en SSL ? Voici mon script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 <?php ignore_user_abort(true); @set_time_limit(0); // supprimer limite de temps pour le script $path = $_SERVER["DOCUMENT_ROOT"]."/toto/"; // chemin de mon pdf $dl_file = preg_replace("([^\w\s\d\-_~,;:\[\]\(\).]|[\.]{2,})", '', $_GET['download_file']); // validation du nom du fichier $dl_file = filter_var($dl_file, FILTER_SANITIZE_URL); // Virer caractères invalides $fullPath = $path.$dl_file; if ($fd = fopen ($fullPath, "r")) { $fsize = filesize($fullPath); $path_parts = pathinfo($fullPath); $ext = strtolower($path_parts["extension"]); switch ($ext) { case "pdf": header("Content-type: application/pdf"); header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\""); // use 'attachment' to force a file download break; default; header("Content-type: application/octet-stream"); header("Content-Disposition: filename=\"".$path_parts["basename"]."\""); break; } header("Content-length: $fsize"); header("Cache-control: private"); //Ouvrir directement le pdf while(!feof($fd)) { $buffer = fread($fd, 2048); echo $buffer; } } fclose ($fd); exit; ?>








Répondre avec citation




Partager