OVH Cloud OVH Cloud

php et type mime

2 réponses
Avatar
greg
hello

existe t-il un moyen en php de determiner l'extension d'un fichier à partir
de son type mime
ou inversement
de determiner le type mime à partir de l'extension d'un fichier

dans les deux cas je precise bien qu'il s'agit de l'extension et non du
fichier complet

un truc du genre : mime_type('.txt') ou extension('application/msword')

merci d'avance

Greg

2 réponses

Avatar
Olivier Miakinen

existe t-il un moyen en php de determiner l'extension d'un fichier à partir
de son type mime
ou inversement
de determiner le type mime à partir de l'extension d'un fichier

dans les deux cas je precise bien qu'il s'agit de l'extension et non du
fichier complet

un truc du genre : mime_type('.txt') ou extension('application/msword')


Oui et non.

Oui, tu peux créer une table de correspondances entre des extensions
Windows et des types MIME, puis utiliser cette table pour faire le
mapping dans un sens ou dans l'autre. Attention, le mapping ne sera pas
bi-univoque car par exemple des fichiers de type image/jpeg peuvent
avoir comme extension windows .jpeg, mais aussi .jpg ou .jpe (pour les
vieux Windows avec des noms du type MS-DOS 8+3). Voici une telle liste
trouvée avec Google : <http://www.allhtml.com/astuces/astuces443.php>.

Mais non, même si tu as une table à jour, ta correspondance ne
fonctionnera pas dans tous les cas. Par exemple, sous Unix les noms de
fichiers n'ont aucune importance et en particulier l'extension Windows
n'a aucune signification. Tu peux très bien avoir un exécutable qui
s'appelle a.out ou bidule ou encore machin.txt.

--
Olivier Miakinen

Avatar
Guillaume Bouchard
greg wrote:
existe t-il un moyen en php de determiner l'extension d'un fichier à partir
de son type mime
ou inversement
de determiner le type mime à partir de l'extension d'un fichier


Non car ces deux choses n'ont pas de relation. L'extension n'est qu'un
truc de trois lettres environ qui permet de s'y retrouver, mais bon, tu
peut toujours faire un tableaux de comparaison.

$ext2mime = array (
'txt' => 'text/plain',
'doc' => 'application/msword');

Apres il suffit de faire

$ext2mimie['txt'] pour avoir le type mimi et avec un petit array_flip et
le tour est joué pour l'extension.

--
Guillaume.