Bonjour,
J'ai un souci concernant le forçage du téléchargement d'un fichier pdf via header.
J'utilise le script http://php.developpez.com/faq/index...._forcedownload
J'ai donc une page toto.ph qui renvoi vers un fichier de téléchargement : telechargement.php qui est en page 90 :Puis dans ce fichier telechargement, je lance une requete vers la base de données pour récupérer le fichier en .pdf :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a href='index.php?page=90&id_compet=$idcompet'>
Puis j'inclus le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 include("connectbase.php"); $idcompet = $_GET['id_compet']; $resultatcompetition="SELECT DISTINCT blabla "; $resulcompet=mysql_query($resultatcompetition) or die("Erreur dans l'extraction des informations<br>"); while ($row = mysql_fetch_array($resulcompet10m)) { $urlcompet1=$row["url_compet"];
Seulement lorsque je lance le téléchargement, dans la fenêtre ou il me demande si je veux ouvrir ou enregister le fichier, j'ai comme nom :
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 $full_path = './Resultats/$urlcompet1.pdf'; // chemin système (local) vers le fichier $file_name = basename($full_path); ini_set('zlib.output_compression', 0); $date = gmdate(DATE_RFC1123); header('Pragma: public'); header('Cache-Control: must-revalidate, pre-check=0, post-check=0, max-age=0'); header('Content-Tranfer-Encoding: none'); header('Content-Length: '.filesize($full_path)); header('Content-MD5: '.base64_encode(md5_file($full_path))); header('Content-Type: application/octetstream; name="'.$file_name.'"'); header('Content-Disposition: attachment; filename="'.$file_name.'"'); header('Date: '.$date); header('Expires: '.gmdate(DATE_RFC1123, time()+1)); header('Last-Modified: '.gmdate(DATE_RFC1123, filemtime($full_path))); readfile($full_path); exit; // nécessaire pour être certain de ne pas envoyer de fichier corrompu }
$urlcompet1.pdf - il n'a pas du tout tenu compte de la requête.
Je tiens à préciser que j'ai testé la requête et qu'elle fonctionne bien
Avez-vous une idée ?
Merci
Partager