Processing of multipart/form-data request failed. Stream ended unexpectedly

org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly

    • 报错日志
    • 现象
    • 解决

报错日志

org.apache.commons.fileupload.FileUploadBase IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly
at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:367)
at
org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
at com.portal.struts.action.studyGarden.ItemUploadAction.safeExecute(ItemUploadAction.java:47)
at com.huateng.mvc.struts.action.SafeAction.execute(SafeAction.java:50)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at com.portal.filter.XssAndSqlSpecialFilter.doFilter(XssAndSqlSpecialFilter.java:39)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at com.portal.filter.SessionFilter.doFilter(SessionFilter.java:101)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at com.huateng.mvc.struts.utils.EncodeUtils.doFilter(EncodeUtils.java:30)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
at weblogic.servlet.internal.WebAppServletContext ServletInvocationAction.run(WebAppServletContext.java:3696)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: org.apache.commons.fileupload.MultipartStream M a l f o r m e d S t r e a m E x c e p t i o n : S t r e a m e n d e d u n e x p e c t e d l y a t 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 I t e m I n p u t S t r e a m . m a k e A v a i l a b l e ( M u l t i p a r t S t r e a m . j a v a : 983 ) a t 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 MalformedStreamException: Stream ended unexpectedly at org.apache.commons.fileupload.MultipartStream ItemInputStream.makeAvailable(MultipartStream.java:983) at org.apache.commons.fileupload.MultipartStream MalformedStreamException:Streamendedunexpectedlyatorg.apache.commons.fileupload.MultipartStreamItemInputStream.makeAvailable(MultipartStream.java:983)atorg.apache.commons.fileupload.MultipartStreamItemInputStream.read(MultipartStream.java:887)
at java.io.InputStream.read(InputStream.java:101)
at org.apache.commons.fileupload.util.Streams.copy(Streams.java:94)
at org.apache.commons.fileupload.util.Streams.copy(Streams.java:64)
at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:362)

现象

公司之前的上传文件接口,突然被测试出异常,通过multipart/form-data方式上传文件的时候,有的文件能上传成功但文件上传后损坏.,有的文件上传时就报上面的异常,有的时候接收的数据为空
因为是老接口,所以接收上传文件的代码和服务器的配置应该是没问题的,最后发现是过滤器的问题

解决

是因为请求经过了过滤器,过滤器对请求做了处理,导致出问题,在过滤器里面把这个接口配置例外就好了.

你可能感兴趣的:(java)