struts2上传文件大小设置

使用Struts2的文件上传控件时,在struts.xml中,将处理上传的action中的fileUpload拦截器的maximumSize参数设置为5000000,上传了一个3M的文件后发现控制台报错,而且提示说文件超过2M。Struts.xml相关配置如下:
<action name="FileUpload" class="cn.timefly.strutsTest.FileUploadAction">
<wbr><wbr><wbr>&lt;result name="success"&gt;/FileUploadResult.jsp&lt;/result&gt;<br><wbr><wbr><wbr>&lt;result name="input"&gt;/FileUpload.jsp&lt;/result&gt;<br><wbr><wbr><wbr>&lt;interceptor-ref name="fileUpload"&gt;<br><wbr><wbr><wbr><wbr><wbr>&lt;param name="maximumSize"&gt;500000&lt;/param&gt;<br><wbr><wbr><wbr><wbr><wbr>&lt;param name="allowedTypes"&gt;application/vnd.ms-powerpoint&lt;/param&gt; <wbr><wbr><wbr><wbr><br><wbr><wbr><wbr>&lt;/interceptor-ref&gt;<br> &lt;interceptor-ref name="defaultStack" /&gt;<br><wbr><wbr><wbr>&lt;/action&gt;<br><br> 在struts.xml中加入 &lt;constant name="struts.multipart.maxSize" value="9000000"/&gt;<br> 发现一切正常了,不报错了。功能也正常了。<br> 发现struts.multipart.maxSize和fileUpload拦截器的maximumSize属性分工不同,总结如下:<br> 1.struts.multipart.maxSize掌控整个项目所上传文件的最大的Size。超过了这个size,后台报错,程序处理不了如此大的文件。fielderror里面会有如下的提示:<br> the request was rejected because its size (16272982) exceeds the configured maximum (9000000)<br> 2.fileUpload拦截器的maximumSize属性必须小于struts.multipart.maxSize的值。<br> struts.multipart.maxSize默认2M,当maximumSize大于2M时,必须设置struts.multipart.maxSize的值大于maximumSize。<br> 3.当上传的文件大于struts.multipart.maxSize时,系统报错<br> 当上传的文件在struts.multipart.maxSize和maximumSize之间时,系统提示:<br> File too large: file "MSF的概念.ppt" "upload__5133e516_129ce85285f__7ffa_00000005.tmp" 6007104<br> 当上传的文件小于maximumSize,上传成功。</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

你可能感兴趣的:(struts2)