SpringBoot文件上传文件大小限制The field file exceeds its maximum permitted size of 1048576 bytes.

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
原文地址:https://www.cnblogs.com/cnsyear/p/13043798.html