Spring Boot升到2.2.6后Multipart文件上传出问题 Failed to parse multipart servlet request

上周将项目Spring Boot Parent依赖从2.1.3升级到最新的2.2.6,原来工作好好的文件上传出问题,总是报multipart文件解析错误,文件流被关闭,百度上找了好多地方法都没查到,后到国外谷哥网站收索到解决方法。

Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: Stream closed
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
先在百度网站上检索这个错误的信息,找了无数页,都没什么用,很多都是提临时目录找不到的问题,让重启和增加临时文件配置,但试了几次,没任何作用,应该不是这个问题。

更多的是让检查程序,但程序以前没有任何问题,不可能是代码关闭流引起的问题。

坑了一天,还是解决不了。没办法,还是翻一下,上谷哥检索,在github的问题上找到了线索,是Spring Boot 升级到2.2.2之后的问题。

根据英文是由logback-access造成的,spring改变了hiddenHttpMethodFilter的过滤机制,需要找Tomcat的请求执行机制。

the root cause was that were using logback-access filter that logs requests and responses.

The Spring change that triggered this issue is hiddenHttpMethodFilter on longer being present in the filter chain. which in turn would make Tomcat’s request implementation parse multipart content and store the parts in the object.

解决办法,配置文件增加下面内容:

#解决升版后文件上传问题
spring:
	mvc:
		hiddenmethod:
			filter:
				enabled: true
  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值