String xxxxx = request.getParameter("xxxx");
//此值为前端js获取的文件的Base64字符串,通过post请求提交至后台
当文件小于2M时,一切正常,当文件大于2M时,request拿不到参数,都为null.
开始分析问题原因:
1.post请求正常不会限制数据大小,排除。
2.tomcat的server.xml有maxPostSize这项参数会限制post请求大小,默认大小为2M.
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" maxPostSize="20971520"/>
3.增大maxPostSize之后发现问题仍然没有解决,于是想到会不会是框架限制,于是查到struts的限制post的默认大小也为2M,于是修改 struts.properties, struts.multipart.maxSize = 20971520 ,问题解决。
struts.i18n.encoding=UTF-8
struts.action.extension=do
struts.locale=zh_CN
struts.custom.i18n.resources=message
struts.multipart.saveDir=/tmp
struts.enable.SlashesInActionNames = true
struts.multipart.maxSize = 20971520