博主呓语:

Apache服务器下IE6/7/8/9等版本下载.docx、.xlsx、.pptx扩展名的文件变成.zip的解决办法

Posted by 破冰 on 2012-9-18 18:24 Tuesday

  docx本质上是一个zip文件,里面有一系列的xml、目录和其他的文件。如果我们将docx改成zip。就可以用winzip等软件将其解开。

  正是由于这样的原因,当MIME中不存在相对应的Office2007类型的情况下,被自动识别为ZIP文件了。

  伟大的Microsoft迄今为止还没有修复这个bug,自作多情的把自己发明的docx,xlsx等格式保存成zip文件,虽然那些文件的实质就是zip,但是绝不能容忍IE下载文件时把它们当做zip,总不能告诉用户让他们自己把下载好的文件改回docx或xlsx后缀吧,麻烦。

解决办法:

在Apache的httpd.conf里添加以下的MIME types信息,然后重启Apache。添加位置可以通过搜索AddType来定位。

AddType application/vnd.ms-word.document.macroEnabled.12 .docm 
AddType application/vnd.openxmlformats .docx .pptx .xlsx 
AddType application/vnd.openxmlformats-officedocument.presentationml.presentation .pptx 
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.sheet .xlsx 
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.document .docx 
AddType application/vnd.ms-word.template.macroEnabled.12 .dotm 
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.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.ms-excel .xlt .xla 
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.template .xltx 
AddType application/vnd.ms-excel.template.macroEnabled.12 .xltm 
AddType application/vnd.ms-xpsdocument .xps 
AddType application/application/vnd.ms-powerpoint .ppt .pot .pps .ppa 
AddType application/msword .doc .dot

IIS服务器一般都集成了这些MIME文件类型,所以可以直接下载。

发表评论: