然后在百度和谷歌上各种搜索,大多数认为是超时而断开连接。对于解决办法一般给的不够全面,现综合给出如下:
(1)首先,上传页面上面的 form 标签要设enctype=”multipart/form-data” 参数
(2)修改tomcat配置文件server.xml,找到类似于下面配置:
< Connector port="8086" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
将上面的参数disableUploadTimeout值改为false即可。
(3)上边(1)是我的程序中已经设置的,修改了(2)所述的配置后依然不能运行,后来又修改了tomcat配置文件server.xml中的另外一处:
< Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
也在里边加入了disableUploadTimeout=”false”一句。
用了以上方法仍然不能解决,后来想到可能是服务器外加了防火墙或者限制了上传文件的大小之类的,联系网络中心进行相关设置进行设置即可
一些问题:
目前用的框架是spring springmvc mybatis,我上传文件的时候,稍大点的文件在本地测试,当然瞬间就能上传成功,但是放到服务器上测试的时候,稍大点的文件上传需要耗费时间,所以常常会没办法上传成功。我上网找了个能显示进度条的代码,也试了下,还是一样的状况,上传到50-70%就终止了。求指教该如何能够稳定上传文件(图片)。
答:因为我在服务器用了gninx反向代理软件,而因为没有设置缓存,所以默认的缓存比较小,导致大于默认缓存大小的文件上传时会中途刷新缓存而导致上传失败。