DevKB
Web Development Knowledge Base
HOME | TOP 20 | WRITE AN ARTICLE |
Sections :



RSS RSS Feed

You too, please publish your useful code snippets in any programming language :
write an article !


Valid HTML 4.0 Transitional

Plateforme d'envoi de gros fichiers en ligne
Dépannage site web
Blog infogérance
Hébergement e-mail

Olivier Ligny - - 11/03/2008 - vue 4829 fois

Téléchargement de fichier via PHP, mise en cache et problème sous IE

Si vous faites un script pour permettre à l'utilisateur de télécharger des données en passant par un script PHP dynamique, et non pas avec un lien direct vers un fichier sur le serveur, vous devez utiliser l'entête Content-Disposition: attachment; pour déclencher l'apparition de la boite de dialogue de téléchargement (et éviter que le fichier, si c'est une image par exemple, ne s'ouvre dans le navigateur lui même) :

$data = file_get_contents('image.jpg');
header("Content-Disposition: attachment; filename="fichier.jpg"");
header('Content-Type: application/octet-stream');
header('Content-Length: '.strlen($data));
echo $data;

Mais sous Internet Explorer un problème peut survenir, notamment si vous utilisez des options de mise en cache, avec une erreur du type "Fichier c:documents and settings ... non trouvé" lorsque le téléchargement se termine. Pour résoudre ce problème, ajoutez la ligne suivante qui forcera le navigateur à garder le fichier dans son cache pendant quelques instants supplémentaires :

header("Cache-Control: max-age=60");




Write a comment :
Your name :     E-mail (optional) :

AntiSpam : what animal is visible on this picture ? :

Nos partenaires : iPhone 8 Cases & Protection