2009-05-13 12 views
17

J'ai découvert un problème étrange dans le type mime du fichier zip lorsque j'ai travaillé sur a Symfony application. Selon le code w3school, le type mime du fichier zip est application/zip. C'est ce que je crois aussi.Type mime pour le fichier zip dans Google Chrome

Mais quand je télécharge un fichier zip dans mon application Symfony avec IE, le type mime de ce fichier zip est application/x-zip-compressed. Lorsque je télécharge un fichier zip dans Firefox, le type mime de ce fichier zip est application/octet-stream.

Aucun d'entre eux est application/zip comme je voudrais croire.

Le comportement le plus étrange de tous est Google Chrome. Lorsque je télécharge un fichier zip dans Google Chrome, je ne peux pas déterminer le type mime correct pour cela. Bien que je am assez sûr qu'il est pas

application/zip 
application/x-zip 
application/octet-stream 
application/x-zip-compressed 

Le type MIME pour le fichier zip dans Google Chrome est une chaîne vide, comme je l'ai découvert par le dumping sur l'objet sfValidatorFile retourné. Notez que le sfValidatorFile.type est "" pour le fichier zip. L'objet sfValidatorFile.type renvoyé pour un fichier jpeg est jpeg.

Il me semble comme il y a un bogue dans les deux Symfony ou Google Chrome

information Futher: Il semble que Gmail interprète le type MIME du fichier zip application/zip dans Google Chrome. C'est le comportement correct. Semble confirmer que c'est le bug de Symfony.

+0

Pouvez-vous définir un point d'arrêt quelque part et lire le type MIME de la demande? –

+0

Ce serait une bonne idée – Graviton

Répondre

24

A partir de maintenant, type MIME d'un fichier zip est une application /octet-stream dans Google Chrome. :)

+0

pouvons-nous modifié le type MIME d'octet-stream à zip ..? existe-t-il des paramètres dans chrome ou du code dans l'application que nous pouvons utiliser ..? – Praditha

+1

Il semble que cela dépend de l'OS, chrome sur Mac retourne application/zip, sur win7 application/octet-stream et sur win8 application/x-zip-compressé – sstauross

+0

Chrome 51.0.2704.103 sur mon ordinateur portable Windows 10 renvoie la chaîne vide à nouveau. .... – Arthur

0

Il me semble qu'il y a un bogue dans Symfony.

Un ticket a été ouvert au here.

3

Ceci est le bug de Google Chrome pas Symfony. J'ai le même problème avec ZIP mime de Google Chrome.

J'ai ma propre application écrite en php. Lorsque vous écrivez echo $_FILES['yournameattr']['type'];, il renvoie une chaîne vide lorsque vous téléchargez un fichier zip, mais lorsque vous téléchargez un fichier gif ou jpeg, il renvoie image/jpeg ou image/gif.

J'ai la version 3.0.195.6 de Google Chrome (bêta). Cependant, si vous avez besoin d'une solution rapide, vous pouvez utiliser preg_match pour vérifier l'extension du fichier (zip ou non).

if (preg_match('/(.*)\.zip/',$_FILES['yournameattr']['name'])) {echo 'This is zip.';} 
+1

Vous avez signalé le problème à Google Chrome? – Graviton

+0

Le champ de nom dans le tableau de fichiers est passé par le client et valide uniquement dans la mesure où le client vous a envoyé un fichier avec l'extension correcte. En d'autres termes, ce n'est pas digne de confiance. – Matthew