2010-05-08 7 views
1

J'ai une liste d'extension à mime-type dans un fichier INI. Cependant, certaines extensions ont plusieurs types de mime, par exemple;Envoi du type MIME le plus correct

midi[] = "application/x-midi"
midi[] = "audio/midi"
midi[] = "audio/x-mid"
midi[] = "audio/x-midi"
midi[] = "music/crescendo"
midi[] = "x-music/x-midi"

6 (possibles) mimetypes pour une prolongation. Quelle pratique courante pour déterminer le mime type correct? (Par exemple, je dois définir un en-tête de type de contenu HTTP).

Je sais que ce n'est pas idéal; déterminer des mimétypes basés sur l'extension .. mais j'ai besoin de résultats cohérents (entre serveurs) (par exemple, l'extension fileinfo en PHP fait des suppositions terribles *).

* Certains résultats de fileinfo par exemple;

  • js - text/plain
  • css - le meilleur que vous avez un texte/c-h
+0

en php ou en général? –

+0

Eh bien, la programmation en PHP, mais je peux imaginer le même problème apparaît dans d'autres langues. Aussi, ce n'est pas seulement "comme une valeur de type de contenu", mais d'autres fins facultatives. –

Répondre

0

Ce que je suis venu avec finale est la suivante; Premièrement, j'utilise "FileInfo" pour 100% (connu) correspond (par exemple gif, jpeg, png) parce que je veux compter sur la détection d '"empreintes digitales" pour certains fichiers.

En cas d'échec ci-dessus, je me replie sur une carte "extension 2 mimetype"; basé sur docs/conf/mime.types (j'ai filtré tous les fichiers communs utilisés, par exemple image, audio, vidéo, web, texte)

Si toujours aucune correspondance trouvée, j'utilise à nouveau "FileInfo"; permettant n'importe quel résultat.

À ce stade, si le type mime n'est pas encore défini, je renvoie le code "application/octet-stream" codé en dur.

1

À la fin de la journée est l'extension du fichier.

Pour la liste définitive, recherchez ce dans l'arbre source apache: docs/conf/mime.types

+0

J'ai déjà compris cela ;-) Le point est que j'ai plusieurs mimetypes possibles à choisir ... et je ne sais pas lequel choisir. Modifier; Hm .. "liste définie" comme dans 1 extension pointé à 1 type mime? –

+0

Non, vous pouvez avoir plusieurs extensions allant à 1 type MIME. Par exemple exe, dll, com, bat et msi mappent à l'application/x-msdownload J'aimerais pouvoir coller la liste ici mais c'est comme bien plus de 1000 entrées! – zaf

+0

J'ai regardé la liste .. et c'est en effet défini (par exemple 1 type mime par extension .. cependant vous avez raison sur la façon dont ils l'ont formaté, plusieurs extensions mappées à 1 mime) .. im va s'en tenir cependant, merci! –

Questions connexes