项目场景:
环境:win10
idea2017
springboot
问题描述:
上传文件一直报错,但是我清晰地记得我的接口是好的
然后提示这个瓜娃子东西,让我怀疑我的配置是否正确
Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes.
原因分析:
别扯多的 就是你光配置这个是没用的,仍然会导致你上传文件限制为1M
server: server: tomcat: max-http-form-post-size: -1 port: 9090 servlet: multipart: enabled: true max-file-size: 200MB max-request-size: 200MB
解决方案:
方案一
步骤1.yml配置
server: server: tomcat: max-http-form-post-size: -1 port: 9090 servlet: multipart: enabled: true max-file-size: 200MB max-request-size: 200MB
步骤2.添加一个Config类
import org.springframework.boot.web.servlet.MultipartConfigFactory; import org.springframework.context.annotation.Bean; import org.springframework.util.unit.DataSize; import javax.servlet.MultipartConfigElement; //@Configuration public class UploadFileConfig { @Bean public MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); //文件最大20M factory.setMaxFileSize(DataSize.ofMegabytes(20)); //factory.setMaxFileSize(DataSize.parse("100MB")); // 设置总上传数据总大小200M factory.setMaxRequestSize(DataSize.parse("200MB")); return factory.createMultipartConfig(); } }
然后重启解决。