104 votes

Comment le type MIME d'un fichier téléchargé est-il déterminé par le navigateur ?

J'ai une application web où l'utilisateur doit uploader un fichier .zip. Du côté serveur, je vérifie le type MIME du fichier uploadé pour m'assurer qu'il s'agit de application/x-zip-compressed ou application/zip.

Cela a fonctionné correctement pour moi sur Firefox et IE. Cependant, lorsqu'un collègue l'a testé, cela a échoué pour lui sur Firefox (le type MIME envoyé était quelque chose comme "application/octet-stream") mais a fonctionné sur Internet Explorer. Nos configurations semblent être identiques : IE8, FF 3.5.1 avec tous les modules complémentaires désactivés, Windows XP SP3, WinRAR installé comme gestionnaire de fichiers .zip natif (je ne suis pas sûr que cela soit pertinent).

Ma question est donc : Comment le navigateur détermine-t-il quel type MIME envoyer?

Veuillez noter : Je sais que le type MIME est envoyé par le navigateur et, par conséquent, peu fiable. Je le vérifie simplement comme une commodité - principalement pour afficher un message d'erreur plus convivial que ceux que vous obtenez en essayant d'ouvrir un fichier non-zip en tant que fichier zip, et pour éviter le chargement des bibliothèques de fichiers zip (presque certainement lourdes).

0voto

smwikipedia Points 5491

Selon rfc1867 - Formulaire de téléchargement de fichiers basé sur HTML :

Chaque partie doit être étiquetée avec un type de contenu approprié si le type de média est connu (par exemple, inféré à partir de l'extension de fichier ou des informations de typage du système d'exploitation) ou en tant qu'application/octet-stream.

Donc, ma compréhension est que application/octet-stream est en quelque sorte un identifiant catch-all si le type ne peut pas être inféré.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X