首页 > 软件编程 > java > SpringBoot报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.
SpringBoot项目中报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.的问题及解决
作者:L_!!!
这篇文章主要介绍了SpringBoot项目中报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.的问题及解决,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
项目场景
提示:项目相关背景:
项目场景:
- 基于Spring Boot的文件上传服务,使用MinIO作为分布式文件存储系统。
- 用户需要上传超过1MB的文件到MinIO存储桶中。
问题描述
前端传图片给后端时,后端服务器报错:
Required request parameter 'examCard' for method parameter type String is not present:
文件上传失败,系统报错显示文件大小超过限制。具体错误信息表明:
- 当前上传的文件超过了1048576字节(1MB)的限制
- 错误与MinIO服务无关,是Spring Boot应用层的限制
原因分析
一开始以为是图片大小超过了minio单次上传文件的大小,后来排查发现是超过了Spring Boot默认的文件上传限制。
Spring Boot默认配置了严格的文件上传限制:
- 默认
max-file-size
为1MB(1048576字节) - 默认
max-request-size
也为1MB - 这些限制是Spring Boot的安全机制,防止大文件上传导致的服务资源耗尽
- MinIO服务本身没有这个限制,问题出在Spring Boot应用层
解决方案
在application.yml
配置文件中增加以下配置:
spring: servlet: multipart: max-file-size: 10MB # 单个文件最大大小限制 max-request-size: 100MB # 整个请求最大大小限制
配置说明:
max-file-size
:控制单个上传文件的最大尺寸(示例设置为10MB)max-request-size
:控制多文件上传时整个请求的最大尺寸(示例设置为100MB)
这些值可根据实际业务需求调整
修改后需要重启应用生效
注意:
生产环境应根据实际硬件资源和业务需求合理设置这些值,避免设置过大导致内存溢出风险。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。