一.上传图片报错
报错文字:
2020-12-12 22:12:07.473 [http-nio-82-exec-1] ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: Stream closed] with root cause
java.io.IOException: Stream closed
at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:359)
at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:132)
at java.io.FilterInputStream.read(FilterInputStream.java:133)
报错截图:
二.原因:
1.由于logback过滤器导致
解决方案:
spring:
mvc:
hiddenmethod:
filter:
enabled: true
参考博文:
https://www.cnblogs.com/siroinfo/p/13045008.html
2.由于多次关闭了Stream
问题举例:
解决方案:
将多余的close语句去掉。
同理,在jsp中,或servlet中也一样,多次关闭out,也会抛出此异常,解决方法与此相同!
注:finally{}内的内容一定会执行!!!
参考博文:
https://blog.csdn.net/qq_42551740/article/details/89812028
3.由于流的关闭顺序错误:先关了大的、后关了小的导致
问题举例:
解决方案:
bufferwriter流使用了outputStreamWriter流,所以关闭bufferwriter流也会关闭outputStreamWriter流; 但是下面有使用outputStreamWriter流,相当于使用一个关闭了的流。解决办法是换下位置就可以了.