it-swarm.cn

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

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

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

(使用Ubuntu服务器)

36
daveilers

这些文件实际上是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
34
Kevin Kuphal

服务器没有为新的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 具有有关此问题的信息

14
daveilers

听起来您的Web服务器正在查看这些文件中的魔术数字,并发现它们是Zip文件。

看看: http://www.webdeveloper.com/forum/showthread.php?t=162526

2
Evan Anderson

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

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

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

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

3)重新安装7-Zip。

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

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

1
Ken Banks

下载 http://packages.ubuntu.com/oneiric/mime-support ,然后使用dpkg -i进行安装。很棒!

PS:Ubuntu和Debian上的Apache从/etc/mime.types中读取

0
pauska