原来struts2的拦截器可以限制文件的类型、大小等,但是当上传文件大小2M后,这个拦截器就不起作用了,只用小于2M(默认大小)的时候才起作用。那是因为:common-fileupload组件默认最大支持上传文件的大小为2M,当我们上传大于2M的文件时,控制台就会输出文件过大异常,但是不会显示出资源文件里给出的提示信息,是因为这个异常的发生导致了fileUpload拦截器没有机会执行,所以看到的是页面没有任何变化,也没有任何提示信息,只是在控制台打印出了上面的那些上传文件过大的异常。
原来xtruts.xml拦截器:
<interceptor-ref name="fileUpload">
<!-- 配置允许上传的文件大小,struts2默认最大为2M,即2097152--> <param name="maximumSize">2097152</param> <!-- 配置允许上传的文件类型 --> <param name="allowedTypes"> application/vnd.ms-powerpoint,application/vnd.ms-excel,application/zip,application/msword,image/bmp, image/png,image/gif,image/jpeg,image/jpg,text/plain </param> </interceptor-ref> <!-- 注意,一定要配置系统默认的拦截器 --> <interceptor-ref name="defaultStack" /> 解决办法:
在顶端再加上: <constant name="struts.multipart.maxSize" value="1000000000" />
还在添加struts.properties文件 内容:struts.multipart.maxSize=1000000000
这样问题就解决了!!!
|
|