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
Firefox et les 500 millions de téléchargements
Firefox avance encore et encore, la barre des 500 millions de téléchargements est déjà franchie, en terme de pourcentage c'est déjà plus de 28% des utilisateurs en europe.
On reste encore un peu en dessous en France (25%) mais on progresse, comme partout d'ailleurs
en attendant IE reste dans les 60% de parts, mais ça ne fait que baisser, et tant mieux ! a part bien sûr si du jour au lendemain IE devienne aussi respectueux des standards que ses concurrents, mais faut pas rêver non plus