Retrouver le type mime
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:
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;
}
}
// 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;
}
}
Bien entendu, la liste ci-dessus peut être complétée, ce sera chose faite au fur et à mesure.