Spring Boot应用程序中的多部分文件上传不适用于tomcat 9.0.31版本。但是此功能可在9.0.30之前的版本中正常工作。但是此版本中存在一个漏洞,因此不得不对其进行升级。
看到下面的错误

 "timestamp": "2020-03-09T08:01:56.169+0000",
"status": 500,
"error": "Internal Server Error",
"message": "Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.impl.IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly",

错误日志如下
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.impl.IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly] with root causeorg.apache.tomcat.util.http.fileupload.MultipartStream$MalformedStreamException: Stream ended unexpectedly

请帮助解决此问题。

最佳答案

我认为该错误已在最新的tomcat版本9.0.33中修复。

升级还修复了在9.0.31版中不起作用的多部分文件上传功能。另外,我尝试使用owasp依赖项检查器检查是否存在任何漏洞,并发现此版本中没有漏洞。

只需使用以下version升级您的依赖项:

<!-- https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-core -->
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-core</artifactId>
    <version>9.0.33</version>
</dependency>

09-12 21:02