Почему docx, xlsx, pptx загружаются с веб-сервера в виде zip-файлов?

На моем сервере Apache я сохранил несколько файлов docx, xlsx pptx.

Некоторые клиентские браузеры считают, что это обычные zip-файлы и меняют расширение файла при загрузке. Как мне заставить это больше не делать это.

(Использование сервера Ubuntu)

5 ответов

Файлы на самом деле являются ZIP-файлами XML. Добавьте это к вашему.htaccess в Apache

AddType application/vnd.ms-word.document.macroEnabled.12 docm
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
AddType application/vnd.ms-powerpoint.template.macroEnabled.12 potm
AddType application/vnd.openxmlformats-officedocument.presentationml.template potx
AddType application/vnd.ms-powerpoint.addin.macroEnabled.12 ppam
AddType application/vnd.ms-powerpoint.slideshow.macroEnabled.12 ppsm
AddType application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx
AddType application/vnd.ms-powerpoint.presentation.macroEnabled.12 pptm
AddType application/vnd.openxmlformats-officedocument.presentationml.presentation pptx
AddType application/vnd.ms-excel.addin.macroEnabled.12 xlam
AddType application/vnd.ms-excel.sheet.binary.macroEnabled.12 xlsb
AddType application/vnd.ms-excel.sheet.macroEnabled.12 xlsm
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx
AddType application/vnd.ms-excel.template.macroEnabled.12 xltm
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx

На сервере не установлены правильные типы MIME для новых типов файлов MS.

добавьте следующее в файл /etc/mime.types и перезапустите apache, и проблема должна быть исправлена.

# Added by myname 2009-06-03
application/vnd.ms-word.document.macroEnabled.12                        docm
application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
application/vnd.ms-powerpoint.template.macroEnabled.12                  potm
application/vnd.openxmlformats-officedocument.presentationml.template   potx
application/vnd.ms-powerpoint.addin.macroEnabled.12                     ppam
application/vnd.ms-powerpoint.slideshow.macroEnabled.12                 ppsm    
application/vnd.openxmlformats-officedocument.presentationml.slideshow  ppsx
application/vnd.ms-powerpoint.presentation.macroEnabled.12              pptm
application/vnd.openxmlformats-officedocument.presentationml.presentation       pptx
application/vnd.ms-excel.addin.macroEnabled.12                          xlam
application/vnd.ms-excel.sheet.binary.macroEnabled.12                   xlsb
application/vnd.ms-excel.sheet.macroEnabled.12                          xlsm
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet       xlsx    
application/vnd.ms-excel.template.macroEnabled.12                       xltm    
application/vnd.openxmlformats-officedocument.spreadsheetml.template    xltx

http://www.webdeveloper.com/forum/showthread.php?t=162526 содержит информацию об этой проблеме

Похоже, ваш веб-сервер просматривает магические числа внутри этих файлов и видит, что они являются ZIP-файлами.

Взгляните на: http://www.webdeveloper.com/forum/showthread.php?t=162526

У меня есть полный административный контроль как на сервере, так и на клиентской машине, связанной с этой проблемой, и ни одно из предложенных решений не помогло исправить эту проблему.

В конце концов, единственное, что ИСПРАВЛЕНО для меня - это....

1) удалить 7-Zip (чтобы браузер не имел ничего общего с zip-файлом)

2) (Не уверен, требуется ли этот шаг, но) Затем я снова загрузил DOCX (где, по совпадению, он все еще представляется в виде ZIP-файла), однако, на этот раз меня спросили, для какого приложения открыть его и Я выбираю MSWORD. Я не выбираю "Всегда открывать с помощью MSWORD", потому что я не хочу, чтобы MSWORD всегда открывал ZIP-файлы.

3) Переустановите 7-Zip.

После этого все последующие попытки загрузить DOCX фактически привели к загрузке файла DOCX и открытию его с помощью соответствующего приложения MSWORD.

ПРИМЕЧАНИЕ. Прежде чем прийти к выводу, что у меня просто была нарушена ассоциация файлов, позвольте мне подтвердить, что при возникновении этой проблемы я мог дважды щелкнуть по любому DOCX в проводнике, и MSWORD всегда будет его открывать. Эта проблема всегда и только возникала при попытке загрузить / открыть DOCX с IE8. FF4 и Chrome оба работали без нареканий. Я попытался добавить правильные типы MIME в /etc/mime-types и в.htaccess на стороне сервера. Я также попытался отключить "Открывать файлы по содержимому, а не по расширению файла" (но это только привело к тому, что браузер открыл DOCX как нечитаемый текст ASCII), установив для параметров реестра FEATURE_MIME_* значение "0" и добавив URL-адрес сервера к Список "Надежных сайтов". Опять же, ни одно из этих, казалось бы, логических решений не работало на меня.

Загрузите http://packages.ubuntu.com/oneiric/mime-support и установите его с помощью dpkg -i. Работал отлично!

PS: Apache на Ubuntu и Debian читает из /etc/mime.types

Другие вопросы по тегам