Posted on 2010-01-27 16:53
winderain 阅读(3410)
评论(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>