org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes. 置顶!
问题分析
从报错信息可以看出,org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException 表示上传的文件大小超过了允许的最大限制。具体来说,Tomcat 默认的单个文件上传大小限制为 1MB(即 1048576 字节),而当前上传的文件大小超出了这个限制。
解决方案: 要解决这个问题,可以通过以下几种方式调整文件上传的大小限制:
方法一:修改 SpringBoot 配置
在 SpringBoot 项目中,可以通过 application.properties
或 application.yml
文件来调整文件上传的大小限制。
1. 使用 application.properties
:
# 设置单个文件的最大大小(例如 10MB)
spring.servlet.multipart.max-file-size=10MB
# 设置整个请求的最大大小(例如 20MB)
spring.servlet.multipart.max-request-size=20MB
2. 使用 application.yml
:
spring:
servlet:
multipart:
max-file-size: 10MB # 单个文件的最大大小
max-request-size: 20MB # 整个请求的最大大小
方法二:修改 Tomcat 的配置
如果使用的是嵌入式 Tomcat(Spring Boot 默认使用),可以通过自定义 WebServerFactoryCustomizer
来调整 Tomcat 的文件上传限制。
代码示例:
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.stereotype.Component;
@Component
public class TomcatConfig implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
@Override
public void customize(TomcatServletWebServerFactory factory) {
// 设置单个文件的最大大小(例如 10MB)
factory.addConnectorCustomizers(connector -> connector.setMaxPostSize(10 * 1024 * 1024));
}
}
方法三:修改外部 Tomcat 的配置
如果项目部署在独立的 Tomcat 容器中,可以修改 server.xml
文件中的 <Connector>
配置。
示例:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxPostSize="10485760" /> <!-- 单位为字节,此处设置为 10MB -->
方法四:动态处理文件大小限制
如果需要根据业务逻辑动态调整文件大小限制,可以在控制器中捕获异常并返回友好的提示信息。
代码示例:
import com.example.demo.model.ResultData;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.multipart.MaxUploadSizeExceededException;
@RestControllerAdvice
public class FileUploadExceptionAdvice {
// @ExceptionHandler(MaxUploadSizeExceededException.class)
// public String handleMaxSizeException(MaxUploadSizeExceededException exc) {
// return "上传的文件过大,请确保文件大小不超过 10MB!";
// }
@ExceptionHandler(MaxUploadSizeExceededException.class)
public ResultData<String> handleMaxSizeException(MaxUploadSizeExceededException exc) {
return ResultData.getFail("上传的文件过大,请确保文件大小不超过限制!");
}
}
注意事项
单位换算:
1MB = 1024KB = 1024 * 1024 字节
在配置文件或代码中,务必确保单位一致。
安全性:
调整文件大小限制时,需考虑服务器性能和安全性,避免因过大的文件上传导致资源耗尽。
测试验证:
修改配置后,建议上传不同大小的文件进行测试,确保配置生效且系统稳定。
通过以上方法,可以有效解决 FileSizeLimitExceededException 报错问题。
标题:org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes.
作者:mmzsblog
地址:https://www.mmzsblog.cn/articles/2025/04/17/1744854202961.html
如未加特殊说明,文章均为原创,转载必须注明出处。均采用CC BY-SA 4.0 协议!
本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。若本站转载文章遗漏了原文链接,请及时告知,我们将做删除处理!文章观点不代表本网站立场,如需处理请联系首页客服。• 网站转载须在文章起始位置标注作者及原文连接,否则保留追究法律责任的权利。
• 公众号转载请联系网站首页的微信号申请白名单!
