当前位置: 首页 > news >正文

Spring Boot 文件上传大小配置错误解决方案

问题描述

在Spring Boot应用中出现以下错误:

Failed to bind properties under 'spring.servlet.multipart.max-file-size’ to org.springframework.util.unit.Datasize
Property:spring.servlet.multipart.max-file-sizeValue: 10Mb
Origin: URL [file:./application-dev.yml]:23:22
Reason:failed to convert java.lang.String to org.springframework.util.unit.Datasize

错误原因

  1. 格式不正确:Spring Boot 2.x及以上版本使用DataSize类型处理大小配置

  2. 单位错误:使用了Mb而不是MB

  3. 大小写敏感:Spring Boot对单位的大小写有严格要求

解决方案

正确配置格式

application.ymlapplication.properties中使用以下格式:

YAML格式
spring:servlet:multipart:max-file-size: 10MBmax-request-size: 10MB
Properties格式
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB

可用单位

Spring Boot接受的存储单位(区分大小写):

单位说明示例
B字节1024B
KB千字节(1024B)10KB
MB兆字节(1024KB)10MB
GB千兆字节(1024MB)1GB
TB万亿字节(1024GB)1TB

常见错误写法

  1. 使用小写单位:10mb ❌

  2. 使用比特单位:10Mb ❌ (Mb表示兆比特,不是兆字节)

  3. 值与单位间有空格:10 MB ❌

  4. 使用旧版格式:maxFileSize ❌ (Spring Boot 2.x后已弃用)

完整配置示例

spring:servlet:multipart:enabled: truemax-file-size: 20MB       # 单个文件最大大小max-request-size: 50MB    # 整个请求最大大小file-size-threshold: 1MB  # 文件大小阈值,超过此值会写入磁盘location: /tmp            # 临时文件存储位置

注意事项

  1. 版本差异

    • Spring Boot 1.x使用maxFileSize等属性

    • Spring Boot 2.x+使用max-file-size等属性

  2. 实际限制

    • max-file-size ≤ max-request-size

    • 建议max-request-size设置为max-file-size的2-3倍

  3. 测试验证

    • 启动应用时检查控制台输出的配置值

    • 使用Postman或curl测试大文件上传

参考文档

  • Spring Boot官方文档 - 文件上传

  • DataSize类文档

通过以上配置调整,文件大小限制的绑定错误应该能够解决。如果问题仍然存在,建议检查Spring Boot版本并确保没有其他配置覆盖了这些值。

http://www.lqws.cn/news/536959.html

相关文章:

  • 在Visual Studio使用Qt的插件机制进行开发
  • Python文件操作完全指南:从入门到精通
  • 基于SpringBoot的智慧旅游系统
  • 从零到一训练一个 0.6B 的 MoE 大语言模型
  • Java——Spring 非注解开发:IoC/DI 与 Bean 管理实战(含第三方组件整合)
  • python的银行柜台管理系统
  • easyExcel导入多sheet的Excel,存在合并单元格、列不固定的情况
  • # RK3588 Linux SDK 完整问题解决记录-编译内核头文件
  • 【Pandas】pandas DataFrame first_valid_index
  • 跨越十年的C++演进:C++14新特性全解析
  • 手机控车远程启动一键启动
  • C++智能指针概念及std::unique_ptr使用介绍
  • 使用docker搭建redis主从架构,一主2从
  • day48-硬件学习之GPT定时器、UART及I2C
  • 日语学习-日语知识点小记-进阶-JLPT-真题训练-N2阶段(4):2022年12月2023年12月
  • 机器学习18-强化学习RLHF
  • python基于协同过滤的动漫推荐系统
  • 华为云Flexus+DeepSeek征文|一键部署知识库搜索增强版搭建AI Agent
  • 《仿盒马》app开发技术分享-- 逻辑优化第三弹(83)
  • 新手向:Neo4j的安装与使用
  • 供应链数据可视化大屏
  • OneCode框架 Tree 相关注解使用说明
  • 服务器的安装与安全设置 域环境的搭建和管理 Windows基本配置 网络服务常用网络命令的应用 安全管理Windows Server 2019
  • 独立开发还能做吗
  • Git-git worktree的使用
  • 测试方法的分类
  • recipes的版本比较老如何更新到新版本?
  • 板凳-------Mysql cookbook学习 (十--11)
  • AAAI 2025论文分享│面向生物医学的具有像素级洞察力的多模态大语言模型
  • day43 打卡