关于上传FileUpload异常:Stream ended unexpectedly
JSP页面上传JAVA后台报错
org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request;
org.apache.commons.fileupload.FileUploadBase
I
O
F
i
l
e
U
p
l
o
a
d
E
x
c
e
p
t
i
o
n
:
P
r
o
c
e
s
s
i
n
g
o
f
m
u
l
t
i
p
a
r
t
/
f
o
r
m
−
d
a
t
a
r
e
q
u
e
s
t
f
a
i
l
e
d
.
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
f
i
l
e
u
p
l
o
a
d
.
M
u
l
t
i
p
a
r
t
S
t
r
e
a
m
IOFileUploadException: Processing of multipart/form-data request failed. org.apache.commons.fileupload.MultipartStream
IOFileUploadException:Processingofmultipart/form−datarequestfailed.org.apache.commons.fileupload.MultipartStreamMalformedStreamException: Stream ended unexpectedly
问题场景:
在新增文件上传功能时发现图片等小文件上传正常,当上传大型文件时会抛出异常
解决方案:
字面意思因为处理多部分/表单数据请求失败。流意外结束
1、首先,上传页面上面的 form 标签要设enctype=“multipart/form-data” 参数
2、上传按钮添加了window.location.reload();点击刷新页面会导致文件传输中断,去掉即可解决
3、添加上传Loading效果
<div id="sending" style="position:absolute; z-index:10; width: 572; visibility: hidden">
<table width=572 height=65 border=0 cellspacing=2 cellpadding=0 bgcolor="#8FA8E9">
<tr>
<td bgcolor=#eeeeee align=center>大文件正在发送, 请稍候...</td>
</tr>
</table>
</div>
JS代码
$(function () {
$('#Uploading-import-form').ajaxForm(function (data) {
if (data.message=="上传成功"){
window.location.reload()
}
})
})
function showSending() {
sending.style.visibility="visible";
}
4、网上查询的解决方案:
修改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即可。
原文链接地址