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;
?>