Подтвердить что ты не робот

Тип Mime для zip файла в Google Chrome

Я обнаружил странную проблему в типе mip файла 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. Хотя я am уверен, что он не

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 файла как приложение /zip в Google Chrome. Это правильное поведение. Кажется, чтобы подтвердить, что это ошибка Symfony.

4b9b3361

Ответ 1

На данный момент MIME-тип zip файла - приложение/октет-поток в Google Chrome.:)

Ответ 2

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

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

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

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

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

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

Ответ 3

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

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