Lorsqu'on propose un téléchargement via une interface web, ou si on veut mettre des pièces jointes dans un mail, il faut avoir le "mime-type" (Multipurpose Internet Mail Extensions) du fichier. Une fonction PHP existe pour celà, c'est mime_content_type() malheureusement elle n'est pas toujours disponible.

Voici une petite astuce qui permet de la recréer:

<?php
if (!function_exists(mime_content_type)) {
   // Nous sommes dans le cas où elle n'existe pas
   function mime_content_type($f) {
      $ext = strtolower(substr($f,strrpos($f, ".")));
      // On ne se base que sur l'extension du fichier
      switch($ext){
         case ".gz": $mtype = "application/x-gzip"; break;
         case ".tgz": $mtype = "application/x-gzip"; break;
         case ".zip": $mtype = "application/zip"; break;
         case ".pdf": $mtype = "application/pdf"; break;
         case ".png": $mtype = "image/png"; break;
         case ".gif": $mtype = "image/gif"; break;
         case ".jpg": case "jpeg": $mtype = "image/jpeg"; break;
         // Notez le cas d'un même type avec différentes extensions
         case ".txt": $mtype = "text/plain"; break;
         case ".htm": case ".html": $mtype = "text/html"; break;
         default: $mtype = "application/octet-stream"; break;
         // Par défaut, c'est application/octet-stream
      }
      return $mtype;
   }
}
?>