Bonjour,
j'ai un problème avec un script. Sur une page j'ai un lien qui une fois cliquez créé un fichier. Ensuite, je veux que l'utilisateur puisse directement télécharger ce fichier.
Pour cela j'ai ce code :
Mon fichier créé se trouve dans le répertoire files2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $writer->writeTheFile($name['name'].'.po'); //crée le fichier //la je veux forcer le téléchargement : header('Content-Type: application/x-rar-compressed'); header('Content-disposition: attachment; filename='.$name['name'].'.po'); header('Pragma: no-cache'); header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0'); header('Expires: 0'); readfile('files2'); exit();
lorsque je clique sur le lien le fichier est bien créé, et firefox me propose de télécharger ce fichier (il a le bon nom) mais il est videalors que le fichier sur le serveur est correct.
Je ne comprend pas pourquoi. Quelqu'un peut m'aider ?
Merci.
Je viens d'essayer en créant un fichier download.php :
et dans mon autre fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <? header('Content-Type: application/x-rar-compressed'); header('Content-disposition: attachment; filename='.htmlentities($_GET['file'])); header('Pragma: no-cache'); header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0'); header('Expires: 0'); readfile('../files2/'); exit(); ?>
Le résultat est le même
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5$writer->writeTheFile($name['name'].'.po'); ?> <script language='JavaScript'> document.location.href="libs/download.php?file=<?php echo $name['name'].'.po';?>" </script>
Je précise si je change readfile('../files2/'); par une adresse éronnée j'obtiens dans le fichier que je télécharge :
<br />
<b>Warning</b>: readfile(files2/) [<a href='function.readfile'>function.readfile</a>]: failed to open stream: No such file or directory in <b>/var/www/html/libs/download.php</b> on line <b>7</b><br />
Partager