不论是使用原生的fileupload组件还是使用struts2,进行文件上传,当总大小超过限制后,都不能正确转到页面
tomcat版本6.0.44,web版本2.5
查询后多数人说在server.xml中添加maxPostSize属性:
<Connector maxSwallowSize="-1" port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" maxPostSize="0"/>
但无济于事,但在查询中发现别人的问题,用的正是上述方式解决,问题链接:
https://blog.youkuaiyun.com/rocklee/article/details/53940433
又发现另一种说法:
- 用户上传超过指定的单个文件大小,会报异常:
- FileSizeLimitExceededException
- 超过多个文件大小,会报异常:
- SizeLimitExceededException
- 在catch这些异常时,有时会给用户以响应,通过request域设置错误信息,但是当用户上传的文件超过限制的大小过大时,并不会转发,这是tomcat的bug
最后我的解决方案:
maxPostSize 是针对application/x-www-form-urlencoded 这种类型的,而文件上传是multipart/form-data。
目前已找到的解决方式为:
第三就是如果用的struts2 那么可以在struts.xml 文件中修改加一个
<constant name="struts.multipart.maxSize" value="10000000" />
实测可用
原文链接:
https://www.oschina.net/question/1378083_247057
https://blog.youkuaiyun.com/Q1059081877Q/article/details/46945045
https://blog.youkuaiyun.com/adsl624153/article/details/72803626?locationNum=8&fps=1