18
mar
2008
mar
2008
Forcer le téléchargement d’un fichier avec PHP
Dance cet article nous allons voir comment forcer le navigateur à télécharger un fichier (n’importe lequel) au lieux de l’ouvrir. Pour cela nous allons utiliser les Headers qu’envoie le serveur au navigateur (fonction header de php).
Voici le code a utiliser :
//date actuelle
$date = gmdate('D, d M Y H:i:s');
header("Content-Type: text/xml"); //Ici par exemple c'est pour un fichier XML, a changer en fonction du type mime du fichier voulu.
header('Content-Disposition: attachment; filename=NOM_FICHIER.xml');
header('Last-Modified: '. $date . ' GMT');
header('Expires: ' . $date);
//header specifique IE :s parce que sinon il aime pas
if(preg_match('/msie|(microsoft internet explorer)/i', $_SERVER['HTTP_USER_AGENT'])){
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
}else{
header('Pragma: no-cache');
}
echo $CONTENU_DE_NOTRE_FICHIER; // ou readfile('CHEMIN_FICHIER'); En fonction du type de fichier.
Le type Mime doit être celui du fichier qu’on veut pouvoir télécharger (liste des types mime disponibles). En voici quelques exemples :
image GIF : image/gif fichier XML : text/xml fichier rtf : application/rtf fichier avi : video/msvideo
Maintenant à vos fichiers dl.php ;-)
Catégories : PHP / MySQL, Programmation
3 commentaires pour “Forcer le téléchargement d’un fichier avec PHP”
-
Krys dit :
Le 23/04/2008 à 13:55:39Fonctionne vraiment bien merci ;)
-
Jean55 dit :
Le 01/11/2008 à 12:53:28Très intéressant, merci beaucoup.
-
eric dit :
Le 05/11/2008 à 10:57:31Merci!
Je cherchais depuis un moment comment faire pour que cela marche sous IE!

(9 votes, note : 4.44 sur 5)