Я обнаружил странную проблему в mime-типе zip-файла, когда работал над приложение Symfony.

Согласно w3school, тип mime для zip-файла - application/zip. Я тоже в это верю.

Но когда я загружаю zip-файл в свое приложение Symfony с IE, mime-тип этого zip-файла - application/x-zip-compressed. Когда я загружаю zip-файл в Firefox, mime-тип этого zip-файла - application/octet-stream.

Ни один из них не application/zip, как мне хотелось бы верить.

Самое странное поведение - это Google Chrome. Когда я загружаю zip-файл в Google Chrome, я не могу определить для него правильный тип mime. Хотя я почти уверен, что это нет

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

Тип mime для zip-файла в Google Chrome - это пустая строка, как я узнал, выгружая возвращенный объект sfValidatorFile. Обратите внимание, что sfValidatorFile.type - это "" для zip-файла.

Но объект sfValidatorFile.type, возвращаемый для файла jpeg, - jpeg.

Мне кажется, что есть ошибка либо в Symfony, либо в Google Chrome

Дополнительная информация: похоже, что Gmail интерпретирует mime-тип zip-файла как application / zip в Google Chrome. Это правильное поведение. Кажется, это подтверждает, что это ошибка Symfony.

18
Graviton 13 Май 2009 в 08:05
Можете ли вы установить где-нибудь точку останова и прочитать mimetype из запроса?
 – 
TM.
13 Май 2009 в 08:11

3 ответа

Лучший ответ

На данный момент типом MIME zip-файла в Google Chrome является application / octet-stream . :)

26
Salman von Abbas 21 Ноя 2012 в 18:26
Можем ли мы изменить тип MIME с октетного потока на zip ..? есть ли какие-либо настройки в хроме или коде в приложении, которые мы можем использовать ..?
 – 
Praditha
2 Фев 2015 в 07:38
2
Кажется, что это зависит от ОС, хром на Mac возвращает приложение / zip, приложение win7 / octet-stream и приложение win8 / x-zip-compressed
 – 
sstauross
12 Ноя 2015 в 12:42
У вас есть источник для этого?
 – 
Yiannis Dermitzakis
17 Мар 2017 в 11:53

Это ошибка Google Chrome, а не Symfony. У меня такая же проблема с мимом ZIP в Google Chrome.

У меня есть собственное приложение, написанное на php.

Когда вы пишете echo $_FILES['yournameattr']['type'];, он возвращает пустую строку, когда вы загружаете zip-файл, но когда вы загружаете файл gif или jpeg, он возвращает image / jpeg или image / gif.

У меня Google Chrome версии 3.0.195.6 (бета).

Хотя, если вам нужно быстрое решение, вы можете использовать preg_match для проверки расширения файла (zip или нет).

if (preg_match('/(.*)\.zip/',$_FILES['yournameattr']['name'])) {echo 'This is zip.';}
4
13 Сен 2009 в 19:09
1
Вы сообщили о проблеме в Google Chrome?
 – 
Graviton
14 Сен 2009 в 04:36
Поле имени в массиве файлов передается клиентом и действует только в том случае, если клиент отправил вам файл с правильным расширением. Другими словами, это не заслуживает доверия.
 – 
Matthew
26 Фев 2013 в 00:33

Мне кажется, что в Symfony есть ошибка.

Билет открыт здесь.

0
Graviton 13 Май 2009 в 10:16