spring boot 2 升级到 spring boot 3 后文件上传失败

背景

项目需要,要求升级 spring boot 2.7 到 spring boot 3.2,升级过程中发现很多不兼容问题,下面说明文件上传失败的解决方案。

问题

spring boot 2 中不需要额外的配置,直接在 Controller 中配置 MultipartFile 接收页面传的文件即可,但是在 spring boot 3 中接收的文件参数为空。

问题一

排查的第一个问题就是文件流被其他 Filter 读取了,导致获取不到文件信息,但是 spring boot 2 也有这个 Filter,没有出现问题。
具体原因没有详细追究,解决方案就是在 Filter 中去掉对文件上传这个请求的处理。

问题二

CommonsMultipartResolver 不能用了。
如果有自定义操作,可以继承 StandardServletMultipartResolver,然后通过 @Component 注入到 spring bean 即可。

如果没有注入该对象,则在 org.springframework.web.servlet.DispatcherServlet.checkMultipart 中 multipartResolver 为 null。
在这里插入图片描述

问题三

还是获取不到文件对象。
追踪到 org.apache.catalina.connector.Request.parseParts 中,可以看到 MultipartConfigElement mce 为 null
在这里插入图片描述
继续查看这部分代码,发现 StandardWrapper 中 multipartConfigElement 是通过注解或者配置文件设置进去的。因此需要注入:MultipartConfigElement 对象进入,如下:
在这里插入图片描述

总结

以上就是升级 spring boot3 文件上传失败遇到的问题及解决方案。

相关推荐

  1. SpringBoot2升级SpringBoot3总结

    2023-12-05 20:14:07       38 阅读
  2. SpringBoot文件阿里云

    2023-12-05 20:14:07       58 阅读
  3. springboot 文件

    2023-12-05 20:14:07       45 阅读
  4. springboot文件

    2023-12-05 20:14:07       42 阅读
  5. SpringBoot文件保存临时文件

    2023-12-05 20:14:07       38 阅读
  6. SpringBoot文件夹

    2023-12-05 20:14:07       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-05 20:14:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-05 20:14:07       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-05 20:14:07       82 阅读
  4. Python语言-面向对象

    2023-12-05 20:14:07       91 阅读

热门阅读

  1. NC56 XML 报文校验出错一例

    2023-12-05 20:14:07       54 阅读
  2. WeakMap

    WeakMap

    2023-12-05 20:14:07      61 阅读
  3. 机器学习(四十九):Mean-Shift 聚类

    2023-12-05 20:14:07       57 阅读
  4. js轮播图示例代码

    2023-12-05 20:14:07       59 阅读
  5. 【软件测试学习】—软件质量需求(四)

    2023-12-05 20:14:07       51 阅读
  6. 第十四周课堂笔记

    2023-12-05 20:14:07       56 阅读
  7. 企业微信HOOK开发接口调用,发送语音消息

    2023-12-05 20:14:07       80 阅读
  8. 《微信小程序开发从入门到实战》学习四十一

    2023-12-05 20:14:07       54 阅读
  9. golang函数的返回值

    2023-12-05 20:14:07       66 阅读