Posted on 2010-01-27 16:53
winderain 閱讀(3423)
評論(1) 編輯 收藏 所屬分類:
JAVA
使用Struts2上傳文件,其實使用的是apache的 commons-fileupload-1.1.jar
在實際使用的過程中,配置了fileUpload攔截器并不能過濾上傳的文件類型,只能處理大小過濾
1 <interceptor-ref name="defaultStack">
2 <!-- 配置允許上傳的文件類型,多個用","分隔 -->
3 <param name="fileUpload.allowedTypes">
4 image/bmp,image/png,image/gif,image/jpeg,image/jpg ,image/x-png
5 </param>
6 <!-- 配置允許上傳的文件大小,單位字節 -->
7 <param name="fileUpload.maximumSize">102400</param>
8 </interceptor-ref>
如果不使用缺省的攔截器,則action中的屬性不能正確賦值。而使用后,攔截類型不起作用。后來在網上多方查找,隱隱角色是缺省攔截器的原有。網上說缺省攔截器中已經包含了fileUpload攔截器。那么這樣配置就是做了兩次攔截。通過查找資料和嘗試,如下配置的情況下可以實現文件類型攔截。
1 <interceptor-ref name="defaultStack">
2 <!-- 配置允許上傳的文件類型,多個用","分隔 -->
3 <param name="fileUpload.allowedTypes">
4 image/bmp,image/png,image/gif,image/jpeg,image/jpg ,image/x-png, image/pjpeg
5 </param>
6 <!-- 配置允許上傳的文件大小,單位字節 -->
7 <param name="fileUpload.maximumSize">102400</param>
8 </interceptor-ref>