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