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