为什么docx,xl​​sx,pptx从Web服务器下载为zip文件?


36

在我的Apache服务器上,我存储了几个docx,xl​​sx pptx文件。

一些客户端浏览器认为这些是常规的zip文件,并在下载时更改文件扩展名。我如何使其不再这样做。

(使用Ubuntu服务器)


这些文件类型做工精细用IE9未做任何改动的htaccess,httpd.conf文件,等等

Answers:


34

这些文件实际上是XML文档的ZIP。将此添加到您在Apache中的.htaccess中

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才能生效吗?
2011年

14

服务器没有为新的ms文件类型设置正确的mime类型

将以下内容添加到/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具有有关此问题的信息


因为这是我的服务器,并且我可以访问/etc/mime.types,所以这对我来说是最佳答案。
daveilers,2009年

在Windows上,该路径可能类似于<apache的安装目录> \ apache \ conf \ mime.types
AJ。

它不适用于Apache2.4
rasanga '16


1

我对与该问题有关的服务器和客户端计算机都拥有完全的管理控制权,而这些提议的解决方案中没有一个可以解决此问题。

最后,对我来说唯一解决此问题的就是...

1)卸载7-Zip(因此浏览器没有与zip文件关联的内容)

2)(不确定是否需要执行此步骤,但是)然后我再次下载了DOCX(巧合的是,它仍然以ZIP文件的形式显示),但是,这一次我被提示使用哪个应用程序打开它我选择MSWORD。我不选择“始终使用MSWORD打开”,因为我不希望MSWORD始终打开ZIP文件。

3)重新安装7-Zip。

此后,所有随后的下载DOCX的尝试实际上导致DOCX文件被下载并使用相应的MSWORD应用程序打开。

注意:在您得出我只是文件关联损坏的结论之前,让我确认一下,当发生此问题时,我可以双击资源管理器中的任何DOCX,而MSWORD始终会打开它。仅当尝试使用IE8下载/打开DOCX时,此问题始终且仅发生。FF4和Chrome都可以正常工作。我尝试在服务器端将适当的MIME类型添加到/ etc / mime-types和.htaccess中。我还尝试了禁用“基于内容打开文件,而不是文件扩展名”(但这只会导致浏览器以不可读的ASCII文本打开DOCX),将FEATURE_MIME_ *注册表项设置为“ 0”,并将服务器URL添加到“受信任的站点”列表。同样,这些SEEP逻辑解决方案都不适合我。


您的桌面上本地.docx文件的关联很有可能是正确的,同时仍不匹配来自Web服务器的application / vnd.openxmlformats-officedocument.wordprocessingml.document文件。检查注册表值HKCR \ .docx \ ContentType
James

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.