SpringBoot上传文件,getItemIterator(r

2020-02-29  本文已影响0人  Liekkasz

问题

在SpringBoot的环境下,写上传文件的功能,结果没有获取到文件的问题,跟踪代码后,发现getItemIterator(request)为空。比较典型的表现是使用ueditor时,提示未找到上传数据。

原因

spring-boot自带的org.springframework.web.multipart.MultipartFile和Multipart产生冲突,如果同时使用了MultipartResolver 和ServletFileUpload,就会在iter.hasNext()返回false。

整个问题产生的原因是Spring框架先调用了MultipartResolver 来处理http multi-part的请求。这里http multipart的请求已经消耗掉。后面又交给ServletFileUpload ,那么ServletFileUpload 就获取不到相应的multi-part请求。

因此将multipartResolve配置去除,问题就解决了。

解决

在使用ServletFileUpload时需要关闭Spring Boot的默认配置 ,所以在配置文件中添加

spring:
  servlet:
    multipart:
      enabled: false
上一篇 下一篇

猜你喜欢

热点阅读