JSP+Servlet使用commons-fileupload上传文件连接被重置解决方案
Posted 吴豪杰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP+Servlet使用commons-fileupload上传文件连接被重置解决方案相关的知识,希望对你有一定的参考价值。
问题描述
在JSP+Servlet下,使用commons-fileupload上传文件,网页显示连接被重置,同时服务器端莫名终止。
如图所示:
解决过程
搜索该问题无果,搜索回顾commons-fileupload的使用方法,发现需要导包commons-io-2.4.jar到WEB-INF/lib/下,而笔者并没有导入此包,因为这样工作依旧正常,而且奇怪的是IDE没有报任何的异常(比如: class没有找到等异常),而且看起来一切正常,莫名就卡在一下看似不可能的代码片段处:
BigDecimal br = new BigDecimal(bytesRead).divide(
new BigDecimal(1024), 2, BigDecimal.ROUND_HALF_UP);
BigDecimal cl = new BigDecimal(contentLength).divide(
new BigDecimal(1024), 2, BigDecimal.ROUND_HALF_UP);
System.out.print("当前读取的是第" + items + "个上传项,总大小" + cl
+ "KB,已经读取" + br + "KB");
// 剩余字节数
BigDecimal ll = cl.subtract(br);
System.out.print("剩余" + ll + "KB");
问题原因
经过查阅,此处总结连接被重置的可能原因:
- 和笔者一样,忘记导入
commons-io-2.4.jar
包 - 上传文件超出最大限制
servletFileUpload.setFileSizeMax(100*1024*1024);
- JSP中类型未指定
<form action="/upload" method="post" enctype="multipart/form-data">
...
</form>
总结
该导入的包总归还是要导的,怎么都跑不了的!
以上是关于JSP+Servlet使用commons-fileupload上传文件连接被重置解决方案的主要内容,如果未能解决你的问题,请参考以下文章