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 😉

Share

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 😉

Share