У меня есть zip-файл, обслуживаемый Apache с включенным сжатием mod_gzip. Все нормально, когда файл скачивается с помощью Firefox. При загрузке с IE7 zip-файл поврежден. Какие-либо предложения? Нужно ли мне изменить тип mime для zip-файлов или, возможно, исключить zip-файлы из сжатия gzip?
Какой тип MIME вы отправляете вместе с файлом .zip? У меня были ошибки, похожие на страницы динамической загрузки (например, при отправке файла download.php) и сжатие. При использовании чего-то вроде application-zip и Content-Encoding: gzip IE не распаковывает файл. Я исправил это, используя MIME-тип application / octet-stream, если я правильно помню.
При этом вам, вероятно, в любом случае следует исключить .zip из сжатия gzip, поскольку он, вероятно, бесполезен, если не снижает производительности.
Эта проблема известная проблема с Internet Explorer 7 и 8. Эти браузеры неправильно обрабатывают тип содержимого zip с кодировкой содержимого gzip. У 8-го выпуска IE все еще есть аудитория, так как это последний выпуск, доступный для XP.
Включение http-сжатия в zip-архиве несколько излишне, но технически допустимо. А в некоторых случаях может не быть возможности исключить zip из HTTP-сжатия, в зависимости от используемых технологий.
Итак, если вы хотите включить обходной путь на своих веб-серверах, чтобы пользователи Internet Explorer 7 или 8 могли получить действительный zip-архив, как сказано в Microsoft KB, либо отключите сжатие http для содержимого zip, либо измените mime-тип zip на octet-stream на своих серверах.
вам обязательно нужно исключить zip-файл из сжатия gzip. Нет необходимости повторно сжимать уже сжатый контент. Это справедливо не только для zip-файлов, но также для jpg и так далее.