开发spring boot程序时,遇到了如下错误:
The field file exceeds its maximum permitted size of 1048576 bytes.

原因:
Spring Boot工程嵌入的tomcat限制了请求的文件大小,官方文档中这样描述:

Spring Boot embraces the Servlet 3 javax.servlet.http.Part API to support uploading files. By default Spring Boot configures Spring MVC with a maximum file of 1Mb per file and a maximum of 10Mb of file data in a single request.

翻译一下:每个文件的最大为1Mb,单次请求的文件的总数不能大于10Mb。

解决方法:

spring boot 2.0 之后,在配置文件application.yaml或 application.properties中增加如下配置:

spring.servlet.multipart.max-file-size=100MB
spring.servlet.multipart.max-request-size=1000MB

如果想不让文件大小受限,将spring.servlet.multipart.max-file-size这个参数设置成-1。



SpringBoot 之设置文件上传大小限制

问题:
SpringBoot默认上传文件大小不能超过1MB,超过之后会报以下异常:
org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes.

解决方法:
第一种解决方案:
增加Bean配置,注意当前类上需要加注解@Configuration,不然扫不到就不会起作用了;一般配置放在启动类中就可以。

/**  * 文件上传配置  * @return  */
@Bean
public MultipartConfigElement multipartConfigElement() {MultipartConfigFactory factory = new MultipartConfigFactory();  //文件最大factory.setMaxFileSize("10240KB"); //KB,MB/// 设置总上传数据总大小factory.setMaxRequestSize("102400KB"); return factory.createMultipartConfig();
}

第二种解决方案:
在配置文件(application.properties/application.yml)中加入如下设置即可:

# 单个文件大小(Mb和Kb都可以)
spring.servlet.multipart.maxFileSize=30MB
# 总上传的数据大小
spring.servlet.multipart.maxRequestSize=30MB


SpringBoot 2.X版本

application.properties
 # 单个文件的最大值spring.servlet.multipart.max-file-size = 1Mb # 上传文件总的最大值spring.servlet.multipart.max-request-size = 10Mb
application.yml
 spring:servlet:multipart:enabled: truemax-file-size: 1MB # 单个文件的最大值max-request-size: 10MB # 上传文件总的最大值

SpringBoot 1.5.X版本

Application启动类上添加 @Bean
 /*** 文件上传配置* @return*/@Beanpublic MultipartConfigElement multipartConfigElement() {MultipartConfigFactory factory = new MultipartConfigFactory();//设置单个文件的最大值factory.setMaxFileSize("1MB"); //KB,MB/// 设置上传文件总的最大值factory.setMaxRequestSize("10MB");//KB,MBreturn factory.createMultipartConfig();}

注:不知道为什么 SpringBoot1.5.x 版本的在配置文件上配置不生效,反正我是测试了不行,不知道是不是我自己的问题,望知道的大牛告知下。

spring boot报FileSizeLimitExceededException异常的解决方法相关推荐

  1. spring boot : Invalid Keystore format Error 解决方法

    前言 springboot:2.0.0.RELEASE maven 开启HTTPS 在eclipse中启动项目,可以正常启动 maven 打包后,启动springboot出现错误:Invalid Ke ...

  2. Spring Boot,Whitelabel Error Page解决方法

    Application类也是在顶层目录下,看了一下Controller中的这个方法是Post,需要改成Get,因为浏览器通过手动输入的url只能访问get方法,此时访问不到post方法! WARN: ...

  3. springboot无法启动,不报任何异常,解决方法如下

    mvn clean install -Dmaven.test.skip=true 项目根目录下面,执行上面的命令,重新启动,OK了 执行上面的语句,会调用系统配置的maven,如果系统未配置,需要先配 ...

  4. 解决Spring Boot报错Mapped Statements collection already contains value for...Error while adding the mapp

    解决Spring Boot报错Mapped Statements collection already contains value for...Error while adding the mapp ...

  5. Spring Boot集成Druid异常discard long time none received connection.

    Spring Boot集成Druid异常 在Spring Boot集成Druid项目中,发现错误日志中频繁的出现如下错误信息: discard long time none received conn ...

  6. Spring Boot 菜鸟教程 异常 集锦

    异常1.集成SPRing Data JPA 异常信息摘要: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataS ...

  7. 关于spring mvc时间类型绑定失败解决方法

    关于spring mvc时间类型绑定失败解决方法 前端页面用的easyui,有个日期字段: <input name="sdt" class="easyui-date ...

  8. Spring Boot 报错ThreadPoolTaskExecutor : Shutting down ExecutorService ‘applicationTaskExecutor‘

    问题 Spring Boot 报错ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor' 原因 ...

  9. linux 图标显示 异常,在Ubuntu 18.04系统中VSCode图标显示异常的解决方法

    以下介绍在Ubuntu 18.04系统中VSCode图标显示异常的解决方法,同时附上在Ubuntu 18.04系统中安装Anaconda3-5.3.0方法.VSCode是一款全平台开发的编辑器,它具有 ...

最新文章

  1. mutations vuex 调用_Vuex源码学习(六)action和mutation如何被调用的(前置准备篇)...
  2. 你能用上降噪耳机,竟要感谢傅立叶变换?
  3. 小而美的个人博客——后端——管理页面
  4. openjdk(HOTSPOT)垃圾回收源码解读
  5. nginx中的nginx.conf.default配置
  6. VC里的project panel窗口如何实现(转载)
  7. 【论文解读】[目标检测]retinanet
  8. BZOJ3514 / Codechef GERALD07 Chef and Graph Queries LCT、主席树
  9. kvaser怎么用?Kvaser 汽车CAN通讯协议总线分析仪新手入门常见问题解决方案教程
  10. Intellij Idea 所有快捷键列表,工欲善其事必先利其器。
  11. easypoi的excel导出单元格只能选下拉选项工具类
  12. 连续信号、离散信号、模拟信号与数字信号区别
  13. root下备份mysql_如何用指令行备份mysql下所有数据库
  14. slotformatcombinations_用于确定无线通信系统中的时隙配置的方法和设备与流程
  15. 资源收集贴(持续更新...)
  16. 投射式AR/AR眼镜的标定之相机姿态、Unity投影矩阵的计算
  17. 安卓 10 周岁了:这些消失的经典 APP 你还记得吗?
  18. RuntimeError: CUDA error: no kernel image is available for execution on the device
  19. 网络中存在的推广经验
  20. openwrt-安装-驱动-应用-lcd2004a实验

热门文章

  1. gradle java ide_使用Gradle构建Java项目
  2. ruby array_Ruby中带有示例的Array.shuffle方法
  3. kotlin 查找id_Kotlin程序查找等边三角形的区域
  4. suse linux增加新磁盘分区,Virtualbox中Linux添加新磁盘并创建分区
  5. 写python笔记本推荐_写个python程序帮你清理垃圾
  6. ruby hash方法_Ruby中带有示例的Hash.rehash方法
  7. treeset java_Java TreeSet Higher()方法与示例
  8. ruby array_Array.select! Ruby中的示例方法
  9. SpringBoot 使用注解实现消息广播功能
  10. 第一弹!安利10个让你爽到爆的IDEA必备插件!