如果被下載的文件是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!~