Ответ 1
На данный момент 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.
На данный момент MIME-тип zip файла - приложение/октет-поток в Google Chrome.:)
Это ошибка 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.';}
Мне кажется, что в Symfony есть ошибка.
Билет был открыт в здесь.