Struts2文件上传超过默认大小限制2M,但无法跳转至指定input页面问题的解决办法

Java 1182℃

1.背景

最近使用Struts2写了个文件上传,测试时候明明超过大小限制,也在struts.xml中配置了页面,但是就是死活无法跳转至指定input页面问题。浏览器提示连接已重置,折腾了一上午,翻阅了两本参考书,查看了培训机构的视频,一步一步照着仔仔细细的做,还是不行,甚至把人家的源码拷贝过来在我的机子上跑,还是不行,把IDEA,tomcat,jdk卸载了重新装……能折腾的都折腾了,还是不行,甚至开始怀疑人生了,哎,上网搜了下,遇到这问题的人还不少,终于找到了根本原因,恍然大悟,特此记录,以此为戒。

2.根本原因

就是tomcat也有默认上传限制,叫maxSwallowSize,默认大小也是2M,如果找超过2M,tomcat会判定是个失败的上传,就会将浏览器请求重置,更不会把这个request再传送到struts2,所以就会出现上述现象。

3.解决办法

修改tomcat的配置文件server.xml(在tomcat目录下的conf里),找到并修改如下内容:

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxSwallowSize="-1" />

maxSwallowSize设置值规则:如果没有指定则为默认值,小于0表示无限制,大于0表示限制为多少字节。

转载请注明:零五宝典 » Struts2文件上传超过默认大小限制2M,但无法跳转至指定input页面问题的解决办法