看了很多博客,原因好像是springboot自带的org.springframework.web.multipart.MultipartFile和Multipart冲突。
记录一种亲测有效的解决方法,@EnableAutoConfiguration排除冲突的依赖
@EnableAutoConfiguration(exclude = {MultipartAutoConfiguration.class})
补充:
后面仔细查看了代码发现是由于旧项目代码迁移到springboot框架出现的冲突问题。
import org.springframework.web.multipart.commons.CommonsMultipartResolver;//这是旧项目引入的 import org.springframework.web.multipart.MultipartFile;//这是springboot整合的
这两者的区别在于后台获取前端文件的方式不同:
MultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext()); MultipartHttpServletRequest multipartRequest = resolver.resolveMultipart(request); MultipartFile file = multipartRequest.getFile("upfile");
以及
MultipartFile file = ((MultipartRequest) request).getFile("upfile");
显然springboot自带的Mutipartfile简单一点,所以将前面排除依赖的注解去掉,完全使用springboot自带的Mutipartfile就行。
文章来源: https://blog.csdn.net/YouCanYouUp_/article/details/89360947