如果被下载的文件是Office2007的dotx,docx,pot等后缀的时候,下载对话框中的图标会变成ZIP的,相应的文件名也会成为zip为扩展后缀的文件。
其实出现这样的情况,是由于IE中对下载文件类型的判断,假如找不到相应后缀的MIME的话,会自动根据数据流来判断文件的类型,而微软对Office2007的格式做了和以前完全不同的处理
一、tomcat处理方式(在web.xml中加入以下代码):
Copy
<mime-mapping> <extension>rar</extension> <mime-type>application/rar</mime-type> </mime-mapping> <mime-mapping> <extension>docx</extension> <mime-type>application/msword</mime-type> </mime-mapping> <mime-mapping> <extension>xlsx</extension> <mime-type>application/vnd.ms-excel</mime-type> </mime-mapping> <mime-mapping> <extension>pptx</extension> <mime-type>application/vnd.ms-powerpoint</mime-type> </mime-mapping>
二、resin处理方式(在conf目录下会有一个app-default.xml文件)增加:
<mime-mapping extension=".docx" mime-type="application/msword"/>
<mime-mapping extension=".xlsx" mime-type="application/vnd.ms-excel"/>
<mime-mapping extension=".pptx" mime-type="application/vnd.ms-powerpoint"/>
三、nginx处理方式(在nginx目录下会有一个mime.types文件)增加:
application/msword docx;
application/vnd.ms-excel xlsx;
application/vnd.ms-powerpoint pptx;
大家可以根据自己的实际情况修改配置。
个人最近遇到docx和xlsx文件下载问题,在web.xml中增加了(一)上面的代码,发现还是不行(以前都是这么处理的都是可以的),搞了半天。
最后发现我文件都是存储在文件服务器上,文件服务器是用nginx搭建的,nginx里面没有增加对应的配置,在nginx中增加相应的配置后,OK!~