struts2檔案上傳型別限制 之 zip和rar檔案型別
阿新 • • 發佈:2019-02-03
zip檔案firefox : application/octet-stream
chrome : application/octet-stream
oprea : application/zip
IE : application/x-zip-compressed
rar檔案firefox : application/x-rar-compressed
chrome : application/octet-stream
oprea : application/x-rar-compressed
如果不使用預設的攔截器,則action中的屬性不能正確賦值。而使用後,攔截型別不起作用。網上說預設攔截器中已經包含了fileUpload攔截器。那麼這樣配置就是做了兩次攔截。通過查詢資料和嘗試,如下配置的情況下可以實現檔案型別攔截。
-------------------------------------------------------------------------------
參考文件:http://www.blogjava.net/winderain/archive/2011/01/04/310971.html
chrome : application/octet-stream
oprea : application/zip
IE : application/x-zip-compressed
rar檔案firefox : application/x-rar-compressed
chrome : application/octet-stream
oprea : application/x-rar-compressed
IE : application/octet-stream
使用Struts2上傳檔案,其實使用的是apache的 commons-fileupload-1.1.jar
在實際使用的過程中,使用如下配置fileUpload攔截器並不能過濾上傳的檔案型別,只能處理大小過濾。
<interceptor-ref name="defaultStack"/>
<!-- 限制檔案上傳大小和型別 -->
<interceptor-ref name="fileUpload">
<param name="maximumSize">10485760</param>
<param name="allowedTypes">
application/msword,application/pdf,application/zip
</param>
</interceptor-ref>
如果不使用預設的攔截器,則action中的屬性不能正確賦值。而使用後,攔截型別不起作用。網上說預設攔截器中已經包含了fileUpload攔截器。那麼這樣配置就是做了兩次攔截。通過查詢資料和嘗試,如下配置的情況下可以實現檔案型別攔截。
<interceptor-ref name="defaultStack"> <!-- 配置允許上傳的檔案型別,多個用","分隔 --> <param name="fileUpload.allowedTypes"> application/msword,application/pdf,application/zip </param> <!-- 配置允許上傳的檔案大小,單位位元組 --> <param name="fileUpload.maximumSize">10485760</param> </interceptor-ref>
-------------------------------------------------------------------------------
參考文件:http://www.blogjava.net/winderain/archive/2011/01/04/310971.html