使用springboot上传文件,当文件超过2M报出异常

异常显示org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (2325669) exceeds the configured maximum (2097152)

请求被拒绝,因为其大小(2325669)超过了配置的最大值(2097152),可见对于上传文件的请求有个默认配置最大值是2M

于是我们上传1M多的文件时,结果报出异常

The field mfile exceeds its maximum permitted size of 1048576 bytes.

字段mfile超出其最大允许大小1048576字节,可见对于MultipartFile文件也有限制,默认限制是1M

于是我们上传小于1M文件,这次终于成功了,但是我们平时上传文件不可能只是小于1M或2M的,还需要修改这个配置

怎么去修改呢

不同版本,对应的设置值不一样

Spring Boot 1.3.x and earlier
multipart.maxFileSize
multipart.maxRequestSize
Spring Boot 1.4.x and 1.5.x
spring.http.multipart.maxFileSize
spring.http.multipart.maxRequestSize
Spring Boot 2.x
spring.servlet.multipart.maxFileSize
spring.servlet.multipart.maxRequestSize
比如在2.0设置

spring.servlet.multipart.maxFileSize=30MB

spring.servlet.multipart.maxRequestSize=30M
不做限制
spring.servlet.multipart.maxFileSize=-1

spring.servlet.multipart.maxRequestSize=-1

另一种方法

写一个config类

import javax.servlet.MultipartConfigElement;
 
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.unit.DataSize;
 
@Configuration
public class TomcatConfig {
 
    @Value("${spring.http.server.maxFileSize}")
    private Long maxFileSize;
    @Value("${spring.http.server.maxRequestSize}")
    private Long maxRequestSize;
 
    @Bean
    public MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        // 单个数据大小
        // factory.setMaxFileSize(MaxFileSize); // KB,MB
        factory.setMaxFileSize(DataSize.ofMegabytes(maxFileSize));
        /// 总上传数据大小
        factory.setMaxRequestSize(DataSize.ofMegabytes(maxRequestSize));
        // factory.setMaxRequestSize(MaxRequestSize);
        return factory.createMultipartConfig();
    }
}
然后在application.properties文件中配置

spring.http.server.maxFileSize和spring.http.server.maxRequestSize的值,效果是一样的

Spring boot微服务项目中上传图片报错,The field file exceeds its maximum permitted size of 1048576 bytes.相关推荐

  1. SpringBoot上传文件报错The field multiFile exceeds its maximum permitted size of 1048576 bytes.

    异常 org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException: The field multiFile e ...

  2. 上传文件过大时,报The field file exceeds its maximum permitted size of 1048576 bytes问题

    该问题是因为后台默认的接收文件的最大尺寸是1M,当上传的单张图片大小超过1M时,后台接收就会有问题,就会出现这种问题 解决方案:1.在前端直接压缩为1M以下的图片 2.在后台进行图片可接收尺寸的限制 ...

  3. Spring Boot 批量上传: The field files exceeds its maximum permitted size of 1048576 bytes.

    Spring Boot 批量上传异常: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededExcep ...

  4. 高级版的 jvisualvm :Spring Boot Admin 监控 Spring Boot 微服务项目

    前奏:先说一下 Java VisualVM Java VisualVM 是一个能够监控 JVM 的 jdk 自带的图形化工具: 在 $JAVA_HOME/bin 目录下,可直接运行它. 要想监控远程服 ...

  5. Spring/Spring Boot微服务项目 集成Druid 实现监控功能

    为什么80%的码农都做不了架构师?>>>    步骤如下: 1.首先新建2个model(LogInfo,MonitorInfo) public class LogInfo imple ...

  6. spring boot微服务项目搭建

    第一章 SpringBoot介绍 1 简介 Spring Boot是一个便捷搭建基于spring工程的脚手架:作用是帮助开发人员快速搭建大型的spring 项目.简化工程的配置和依赖管理:开发人员把时 ...

  7. Spring Boot工程在IDEA中运行报错

    今天把Maven构建的Spring Boot项目拉到IDEA中运行,结果运行时报错: java.lang.NoClassDefFoundError: javax/servlet/MultipartCo ...

  8. jeecg微服务项目调用接口报错Token验证失效的解决方法

    大家好,我是雄雄. 前言 今天,记录一篇啼笑皆非的问题. 昨晚上在做微信公众号开发时,遇到了个解决好久的问题,即:微信公众号上配置服务器信息之后,回调服务器接口总是报错token验证失败. 剧透(这么 ...

  9. Spring Boot微服务项目启动错误: 找不到或无法加载主类解决方案

    这个问题其实不考察技术含量,只是看思路和细心程度.简单记录下,希望能帮助一个是一个. 解决方法一:maven clean install方式 可以找到具体服务模块的maven工具如下操作,或者直接执行 ...

  10. Spring Cloud Alibaba微服务项目中集成Redis实现分布式事务锁实践

    引言 我们知道同一个进程里面为了解决资源共享而不出现高并发的问题可以通过高并发编程解决,通过给变量添加volatile关键字实现线程间变量可见:通过synchronized关键字修饰代码块.对象或者方 ...

最新文章

  1. 中国大巴租赁行业市场前瞻与投资战略规划分析报告
  2. 什么是javadoc文档
  3. CaseStudy(showcase)界面篇-导出xaml以及放入Blend的技巧
  4. LiveVideoStackCon2019北京 八月再聚
  5. gensim在“中文查找(关键词)“与“txt文本“之间做相似度计算(返回最相似的文本)
  6. P3332-[ZJOI2013]K大数查询【树套树】
  7. Html input file控件使用accept过滤 限制的文件类型
  8. BI项目中ETL设计与思考
  9. STM32——EMWIN位图显示(四)
  10. Vue - 加载静态图片的方式
  11. 关闭Chrome启动时的360导航页面
  12. 计算机怎么开机操作,电脑怎么设置键盘开机?
  13. flea-common使用之通用策略模式实现
  14. C# WPF、Winform中Show()和ShowDialog()区别
  15. 图像修复-基本问题和经典方法
  16. 三层神经网络实现分类器
  17. LinuxProbe学习笔记(九)
  18. 认识1M带宽、1Mbps、1Mb/s 区分
  19. Mac新手——如何在macOS中创建访客帐户
  20. 【AGL】初探AGL之Application framework

热门文章

  1. matlab复数的使用,关于MATLAB在复数方面的应用
  2. 通俗的理解:什么是编程语言?
  3. 华为工作10年,年薪80万。
  4. 发现京东客服的一个死循环bug
  5. 树莓派是什么 树莓派能做什么 树莓派的功能用途
  6. Latex设置中文标题样式
  7. 机器人手眼标定Ax=xB(eye to hand和eye in hand)及平面九点法标定
  8. 微信小程序 | 微信公众平台SpringBoot开发实例 │ 开发一个简易的个人微信公众号
  9. 如何在网页title前面加logo
  10. 苹果屏幕镜像_苹果屏幕镜像一直在转,秒懂投屏帮你解决