SpringBoot文件上传文件大小限制 The field file exceeds its maximum permitted size of 1048576 bytes.
2020年6月4日15:34:29 复工的第一天,写上传文件接口时遇到了文件大小受限。。。
接口
@ApiOperation(value = "第二步:上传任务截图文件到Ftp(可多次上传截图文件)", notes = "")
@PostMapping(value = "/uploadTaskFile", headers = "content-type=multipart/form-data")
public XAdmindResult uploadTaskFile(@RequestParam long taskId, @RequestParam MultipartFile file) {
try {
InputStream in = file.getInputStream();
String fileName = ftpUtil.renameMultipartFile(file);
//上传到ftp服务器
ftpUtil.upload(fileName, in);
return XAdmindResult.build(XAdminCodeEnum.SUCCESS);
} catch (IOException e) {
e.printStackTrace();
return XAdmindResult.build(XAdminCodeEnum.ERROR);
}
}
异常信息
org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes.
at org.apache.tomcat.util.http.fileupload.FileUploadBase$FileItemIteratorImpl$FileItemStreamImpl$1.raiseError(FileUploadBase.java:633) ~[tomcat-embed-core-9.0.19.jar:9.0.19]
at org.apache.tomcat.util.http.fileupload.util.LimitedInputStream.checkLimit(LimitedInputStream.java:76) ~[tomcat-embed-core-9.0.19.jar:9.0.19]
at org.apache.tomcat.util.http.fileupload.util.LimitedInputStream.read(LimitedInputStream.java:135) ~[tomcat-embed-core-9.0.19.jar:9.0.19]
at java.io.FilterInputStream.read(FilterInputStream.java:107) ~[?:1.8.0_181]
。。。。
解决方法
报错的原因是:springBoot项目自带的tomcat对上传的文件大小有默认的限制,SpringBoot官方文档中展示:每个文件的配置最大为1Mb,单次请求的文件的总数不能大于10Mb。
spring:
servlet:
multipart:
max-file-size: 50MB #单个数据大小
max-request-size: 100MB #总数据大小
- SpringBoot的版本不同,这两个配置语句也不一样,具体版本对应如下:
Spring Boot 1.3 版本:
multipart.maxFileSize
Spring Boot 1.4 版本和 1.5 版本:
spring.http.multipart.maxFileSize
Spring Boot 2.0 版本:
spring.servlet.multipart.maxFileSize