tomcat 下載檔案卻直接亂碼開啟 at IE 10
上星期五接到一張 ticket 內容大概是網站上提供下載 .msi 的安裝檔案,在經過測試後大部分瀏覽器都可以正常下載檔案,唯獨漏掉測試的 IE 10 會出現問題,IE 10 會把 .msi 檔案當作文字檔一般開啟,在頁面上印出一堆亂碼,簡單記錄一下解決方法。
IE 一直以來都不怎麼令小蛙討喜,每次在 IE 不是跑版就是碰到一些奇奇怪怪的問題,相對的也可能習慣用 IE 的開發者來說會覺得 Chrome, Firefox 才是非正道,不管怎樣網站開發人員在相容性部份常常一個頭兩個大!小蛙這邊的系統是 tomcat 架設,在檔案下載 .msi 的部份,Chrome, Firefox 可以正常下載檔案,IE 8, IE 9 也都可以正常下載檔案,不知道為什麼到了 IE 10 就變成無法正常下載檔案了 …
為了還原這張 ticket 的情況,特地將筆電中的 IE 9 更新到 IE 10,由於 Windows 7 的 IE 10 需要 SP 1 以上才可以安裝 … 又花了不少時間把 Windows 7 安裝 SP 1 再更新 IE 10,不知道為什麼每次遇到跟 IE 有關的問題都會滿肚子火(個人偏見),前陣子看到朋友塗鴉牆上寫著「終於找到 IE 的用途了,是拿來下載 Chrome!」要不是有一些 IE only 的服務或是網站,小蛙心想 IE 被安裝在電腦上的比例會更低吧!
離題了,這個問題是 IE 10 下載 tomcat 伺服器上的檔案時,會變成「直接開啟」的狀態,也就是跟下載 txt 檔相同,把 msi 檔案直接印在網頁上,本來小蛙懶得找原因,只想偷懶直接把 .msi 換成 .zip 檔案就可以下載了,後來想想有好幾個頁面要改,有點不甘心,決定還是 google 一下看看。
可以透過簡單設定 tomcat 上的 /usr/local/tomcat/conf/web.xml 設定檔來解決這個問題,路徑以 tomcat 安裝目錄為主,只要在 web.xml 中加入以下
<mime-mapping> <extension>msi</extension> <mime-type>application/x-msi</mime-type> </mime-mapping>
重新啟動 tomcat 即可!打完收工!
參考資料:
- .msi downloading as text @ stackoverflow
http://stackoverflow.com/questions/1079630/msi-downloading-as-text