IE 6-10 上傳 Excel 文件偶爾返回 403,請求未達到服務器。另存為後上傳則正常。其他瀏覽器無此問題。
IE 偶爾將 .xls/.xlsx 識別為 application/octet-stream (二進制流) 而非標準 MIME:
.xls → application/vnd.ms-excel.xlsx → application/vnd.openxmlformats-officedocument.spreadsheetml.sheet項目中的 Filter/攔截器按 MIME 類型白名單校驗,octet-stream 不在白名單中,被攔截返回 403。
application/octet-stream 允許通過(需配合文件擴展名二次校驗)。web.xml 或 Tomcat conf/web.xml 確保擴展名正確映射:<mime-mapping>
<extension>xls</extension>
<mime-type>application/vnd.ms-excel</mime-type>
</mime-mapping>
<mime-mapping>
<extension>xlsx</extension>
<mime-type>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</mime-type>
</mime-mapping>
accept=".xls,.xlsx",但 IE 仍可能忽略。IE 判斷文件類型機制較老舊,主要依賴註冊表 HKEY_CLASSES_ROOT\.xls\Content Type,系統安裝 Office 版本、補丁均可能影響。若 Tomcat 已配置 mime-mapping 仍無效,說明請求在進入 Servlet 容器前已被前置 Filter/代理攔截。