您的位置:首页 > 编程语言 > Java开发

关于Struts2上传文件的最大Size的设置

2013-09-14 10:52 489 查看
今天使用Struts2的文件上传控件时,在struts.xml中,将处理上传的action中的fileUpload拦截器的maximumSize参数设置为5000000,上传了一个3M的文件后发现控制台报错,而且提示说文件超过2M。Struts.xml相关配置如下:
<action name="FileUpload" class="cn.timefly.strutsTest.FileUploadAction">

<result name="success">/FileUploadResult.jsp</result>

<result name="input">/FileUpload.jsp</result>

<interceptor-ref name="fileUpload">

<param name="maximumSize">500000</param>

<param name="allowedTypes">application/vnd.ms-powerpoint</param>

</interceptor-ref>

<interceptor-ref name="defaultStack" />

</action>

后来尝试在struts.xml中加入 <constant name="struts.multipart.maxSize" value="9000000"/>

发现一切正常了,不报错了。功能也正常了。

发现struts.multipart.maxSize和fileUpload拦截器的maximumSize属性分工不同,总结如下:

1.struts.multipart.maxSize掌控整个项目所上传文件的最大的Size。超过了这个size,后台报错,程序处理不了如此大的文件。actionerror里面会有如下的提示:

the request was rejected because its size (16272982) exceeds the configured maximum (9000000)

2.fileUpload拦截器的maximumSize属性必须小于struts.multipart.maxSize的值。

struts.multipart.maxSize默认2M,当maximumSize大于2M时,必须设置struts.multipart.maxSize的值大于maximumSize。

3.当上传的文件大于struts.multipart.maxSize时,系统报错

当上传的文件在struts.multipart.maxSize和maximumSize之间时,系统提示:

File too large: file "MSF的概念.ppt" "upload__5133e516_129ce85285f__7ffa_00000005.tmp" 6007104

当上传的文件小于maximumSize,上传成功。

补充,关于多文件上传的说明:

对于多文件上传来说:struts.multipart.maxSize控制的是多文件的总大小,提示错误是actionerror级别的,而对于maximumSize是控制的单文件的大小

,提示错误时fielderror级别的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: