Spring Boot 项目上传文件时,文件过大报错解决一站式办法(含:最大值设置,全局异常捕获)

这篇具有很好参考价值的文章主要介绍了Spring Boot 项目上传文件时,文件过大报错解决一站式办法(含:最大值设置,全局异常捕获)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        Spring Boot 项目传文件时,如果不单独设置大小,默认最大1Mb,会报这个错:

2020-01-05 10:42:06.524 WARN 17840 --- 
[io-8080-exec-10] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: 
org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: 
The field editormd-image-file exceeds its maximum permitted size of 1048576 bytes.]
这个意思就是上传的文件超出了其最大允许大小1048576字节

解决办法就是,根据自己业务需求设置合适的文件上传大小限制

目录

配置文件配置示例

全局异常捕获


配置文件配置示例

设置方法示例:

 1. 首先在配置文件中添加配置参数,以下两种配置二选一

如果你的配置文件是在application.properties中,则配置如下:

#单个文件最大大小
spring.servlet.multipart.max-file-size=10MB

#所有上传文件最大大小
spring.servlet.multipart.max-request-size=100MB

如果是application.yml,则配置如下:

spring:
  servlet:
    multipart:
      max-file-size: 100MB  #单个文件最大
      max-request-size: 200MB #单个请求文件总和最大
server:
  tomcat:
    max-swallow-size: 200MB #重要的一行,修改tomcat的吞吐量

全局异常捕获

虽然配置了大小,但是超长以后报的错不友好,配置全局异常处理


/**
 * @Author 
 * @Date 2023/5/25 11:12
 * @Description: 全局异常处理器
 */
@RestControllerAdvice
public class GlobalExceptionHandlerResolver {
    private final static Logger LOGGER = LoggerFactory.getLogger(GlobalExceptionHandlerResolver.class);


 /**
     * 文件上传超过最大限制异常
     *
     * @return R
     */
    @ExceptionHandler(value = MultipartException.class)
    public @ResponseBody
    Result handleBusinessException(MaxUploadSizeExceededException ex) {
        String msg;
        if (ex.getCause().getCause() instanceof FileSizeLimitExceededException) {
            LOGGER.error(ex.getMessage());
            msg = ResultCode.EXCEED_FILE_MAX + "[单文件大小不得超过100M]";
        } else if (ex.getCause().getCause() instanceof SizeLimitExceededException) {
            LOGGER.error(ex.getMessage());
            msg = ResultCode.EXCEED_FILE_MAX + "[总上传文件大小不得超过200M]";
        } else {
            msg = ResultCode.FILE_UPLOAD_FAILURE + "请检查文件类型及大小是否符合规范";
        }

        return new Result("401", msg, null);

    }
}

到此就大功告成,大小得到了限制,报错也友好

此时项目设置基本可以实现大文件上传了

如果你是吧文件上传进MySQL存储的话会有新的问题,MySQL一次执行文件过大也会报错,此时需要修改MySQL默认参数 max_allowed_packet

修改方法可见我的另一篇文章

Cause: com.mysql.cj.jdbc.exceptions.PacketTooBigException: Packet for query is too large_小田资料库的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-495163.html

到了这里,关于Spring Boot 项目上传文件时,文件过大报错解决一站式办法(含:最大值设置,全局异常捕获)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java spring-boot项目中如何上传下载文件或图片到spring-boot规定的非静态目录

    spring-boot的项目,虽然它自己定义了一个静态文件的存储目录,但是这个目录一般是作为前端静态文件的目录来作为使用的。如果使用这个静态目录来作为我们上传文件的目录会有一个比较尴尬的地方:将spring-boot打包成为jar包后,随着上传图片的增多,这个jar包也会跟着变大

    2024年02月16日
    浏览(55)
  • springboot minio 工具类,一站式解决

    注意 minio 新版本有9000和9090两个端口,web访问是9000,但走api上传和访问都是9090端口 引入pom controller

    2024年01月20日
    浏览(55)
  • 一站式敏捷研发协同平台,敏捷研发解决方案

     Leangoo领歌是一款 永久免费的专业的敏捷开发管理工具 ,提供端到端敏捷研发管理解决方案,涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 Leangoo领歌上手快、实施成本低,可帮助企业快速落地敏捷,提质增效、缩短周期、加速创新。 Leangoo领歌区别于传统项目管

    2024年01月24日
    浏览(48)
  • 使用屏幕捕捉API:一站式解决屏幕录制需求

    随着科技的发展,屏幕捕捉API技术逐渐成为一种热门的录屏方法。本文将详细介绍屏幕捕捉API技术的原理、应用场景以及如何利用这一技术为用户提供便捷、高效的录屏体验。 在线录屏 | 一个覆盖广泛主题工具的高效在线平台(amd794.com) https://amd794.com/recordscreen 一、屏幕捕捉

    2024年01月18日
    浏览(64)
  • (1)、扩展SpringCache一站式解决缓存击穿,穿透,雪崩

    我们在使用SpringCache的@Cacheable注解时,发现并没有设置过期时间这个功能。

    2024年02月12日
    浏览(49)
  • 一站式Flink&Spark平台解决方案——StreamX

    随着 FlinkSpark 生态的不断完善,越来越多的企业选择这两款组件,或者其中之一作为离线 实时的大数据开发工具,但是在使用他们进行大数据的开发中我们会遇到一些问题,比如: 任务运行监控怎么处理? 使用 Cluster 模式还是 Nodeport 暴露端口访问 Web UI ? 提交任务能否简化

    2024年02月13日
    浏览(47)
  • 一站式解决方案:Qt 跨平台开发灵活可靠

    一站式解决方案:Qt 跨平台开发灵活可靠 Qt 是一种跨平台开发工具,为开发者提供了一站式解决方案。无论您的项目目标是 Windows、Linux、macOS、嵌入式系统还是移动平台,Qt 都能胜任。这种跨平台的特性不仅节省开支,还推动了战略的快速落地。 适用范围广泛:Qt 可在多种

    2024年02月07日
    浏览(59)
  • 移远通信推出一站式Matter解决方案,构建智能家居开放新生态

    近日,全球领先的S物联网整体解决方案供应商移远通信宣布,正式推出全新Matter解决方案,从模组、APP、平台、认证、生产五大层面为客户提供一站式服务,赋能智能家居行业加快融合发展。 过去十年,得益于物联网生态的发展,智能家居行业经过创新竞争形成百花齐放的

    2024年02月12日
    浏览(42)
  • 【思扬赠书 | 第1期】教你如何一站式解决OpenCV工程化开发痛点

    ⛳️ 写在前面参与规则!!! ✅参与方式:关注博主、点赞、收藏、评论,任意评论(每人最多评论三次) ⛳️本次送书1~3本【取决于阅读量,阅读量越多,送的越多】 机器视觉 机器视觉是使用各种工业相机,结合传感器跟电气信号实现替代传统人工,完成对象识别、计

    2024年02月04日
    浏览(59)
  • 移远云服务QuecCloud正式发布,一站式为全球客户提供创新有效的解决方案

    4 月12日,在“万 物智联 · 共数未来”移远通信物联网生态大会上,移远通信宣布正式推出其物联网云服务——QuecCloud。 QuecCloud 具备智能硬件开发、物联网开放平台、行业解决方案三大能力,可为开发者和企业用户提供从硬件接入到软件应用的全流程解决方案,助力行业客

    2023年04月15日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包