2011-12-15 2 views
3

Comment créer un fichier (nom_du_fichier.extension_fichier), par type mime? La liste des mimes est dynamique.créer un fichier (nom.extension) par type mime

Exemple:

MIME     Extension 
application/msword | .doc 
text/plain   | .txt 
text/css   | .css 

Je ne veux pas utilisez array ("mime" => "extension");

J'ai le type mime, mais j'ai besoin de l'extension de fichier.

+1

Êtes-vous demande, en substance pour une décharge de [type à extension mime] (http://www.webmaster-toolkit.com/mime-types.shtml) dans un liste déposée? PHP a aussi [finfo_file] (http://www.php.net/manual/fr/function.finfo-file.php) que vous pouvez utiliser. –

+0

Je ne veux pas faire une liste de mimes et d'extensions – Gadonski

+0

'Je ne veux pas utiliser array (" mime "=>" extension ");' - vous devez utiliser * some * type de table de recherche, chaque méthode implémentée pour le faire a une forme de table de recherche quelque part dedans. – DaveRandom

Répondre

2

Pour éviter d'utiliser une table de recherche (au moins éviter vous devoir en définir un), vous pouvez utiliser finfo_file.

echo finfo_file('myfile.jpg', finfo_open(FILEINFO_MIME_TYPE)); // output: image/jpg 

Si vous êtes sur 5.0, vous pouvez essayer mime_content_type (Mais gardez à l'esprit c'est dépréciée, donc si vous cherchez mise à niveau compatible, vous voudrez peut-être par défaut au nouveau finfo_file si possible) :

echo mime_content_type('myfile.jpg'); // output: image/jpg 

// When possible, it will use upgraded finfo_file, but will default back 
// to content_mime_type when necessary 
function getMimeType($file){ 
    if (function_exists('finfo_file') && defined('FILEINFO_MIME_TYPE')){ 
    $return_mime = finfo_open(FILEINFO_MIME_TYPE); 
    return finfo_file($file, $return_mime); 
    } 
    return content_mime_type($file); 
} 
+0

sympa! mais, j'ai besoin de l'extension de fichier. J'ai le type mime. – Gadonski

+0

@ AndréGadonski: Alors vous aurez besoin d'une forme de table de recherche. Tout en PHP est de chercher du fichier au mime, pas l'inverse. –