今天遇到一例文件上传失败,研发的同学说代码那边没有问题,应该是Tomcat或者Nginx的配置中限制了HttpPost的大小。于是我
Nginx中限制请求大小的地方是如下的client_max_body_size,我们图方便,直接分3000m,应该足矣:
location /app { proxy_pass http://server_name; client_max_body_size 3000m; access_log off; }
Tomcat则是在server.xml中的connector元素中添加:maxPostSize=” ” ;“ ”中填你需要限制到的大小,如“0”为不限制。缺省这个参数,就会是2m. 所以应该是这里出了问题。于是我添加一行maxPostSize=”0″:
我会告诉你这样改完没有效果吗。上传还是失败。
因为HttpPost不仅是大小会限制,还会有时间限制。虽然你可以上传了,但你在connectionTimeout的限制时间内不能传完,连接也会断开的。
所以再将它修改如下,原先的connectionTimeout时间是“20000”,但是注意,单位是毫秒啊……于是我把它加到”2000000“,有半小时以上,足矣吧:
实测成功。
This entry was posted in on by .