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

36

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

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

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

daveilers
источник
Эти типы файлов отлично работают с IE9 без внесения каких-либо изменений в htaccess, httpd.conf и т. Д.

Ответы:

34

Файлы на самом деле являются 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
Кевин Куфал
источник
У меня была такая же проблема, и я добавил это в .htaccess, но то же самое происходит в IE (даже после удаления кэша). Вам нужно перезапустить Apache, чтобы это вступило в силу?
Supertrue
14

На сервере не установлены правильные типы 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 содержит информацию об этой проблеме

daveilers
источник
так как это мой сервер и у меня есть доступ к /etc/mime.types, это лучший ответ для меня.
daveilers
в Windows путь может быть что-то вроде <install dir для apache> \ apache \ conf \ mime.types
AJ.
Это не работает с Apache2.4
rasanga
1

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

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

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-адрес сервера к Список «Надежных сайтов». Опять же, ни одно из этих, казалось бы, логических решений не работало на меня.

Кен Бэнкс
источник
вполне возможно, что связь на вашем рабочем столе для локальных файлов .docx будет правильной, но при этом она не будет соответствовать файлам application / vnd.openxmlformats-officedocument.wordprocessingml.document с веб-сервера. Проверьте значение реестра HKCR \ .docx \ ContentType
Джеймс