SpringBoot項目中報錯The field screenShot exceeds its maximum permitted size of 1048576 bytes.的問題及解決
項目場景
提示:項目相關(guān)背景:
項目場景:
- 基于Spring Boot的文件上傳服務(wù),使用MinIO作為分布式文件存儲系統(tǒng)。
- 用戶需要上傳超過1MB的文件到MinIO存儲桶中。
問題描述
前端傳圖片給后端時,后端服務(wù)器報錯:
Required request parameter 'examCard' for method parameter type String is not present:
文件上傳失敗,系統(tǒng)報錯顯示文件大小超過限制。具體錯誤信息表明:
- 當前上傳的文件超過了1048576字節(jié)(1MB)的限制
- 錯誤與MinIO服務(wù)無關(guān),是Spring Boot應(yīng)用層的限制
原因分析
一開始以為是圖片大小超過了minio單次上傳文件的大小,后來排查發(fā)現(xiàn)是超過了Spring Boot默認的文件上傳限制。
Spring Boot默認配置了嚴格的文件上傳限制:
- 默認
max-file-size為1MB(1048576字節(jié)) - 默認
max-request-size也為1MB - 這些限制是Spring Boot的安全機制,防止大文件上傳導(dǎo)致的服務(wù)資源耗盡
- MinIO服務(wù)本身沒有這個限制,問題出在Spring Boot應(yīng)用層
解決方案
在application.yml配置文件中增加以下配置:
spring:
servlet:
multipart:
max-file-size: 10MB # 單個文件最大大小限制
max-request-size: 100MB # 整個請求最大大小限制配置說明:
max-file-size:控制單個上傳文件的最大尺寸(示例設(shè)置為10MB)max-request-size:控制多文件上傳時整個請求的最大尺寸(示例設(shè)置為100MB)
這些值可根據(jù)實際業(yè)務(wù)需求調(diào)整
修改后需要重啟應(yīng)用生效
注意:
生產(chǎn)環(huán)境應(yīng)根據(jù)實際硬件資源和業(yè)務(wù)需求合理設(shè)置這些值,避免設(shè)置過大導(dǎo)致內(nèi)存溢出風險。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java8使用filter()取出自己所需數(shù)據(jù)
這篇文章主要介紹了java8使用filter()取出自己所需數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
Springboot自動配置與@Configuration配置類詳解
這篇文章主要介紹了SpringBoot中的@Configuration與自動配置,在進行項目編寫前,我們還需要知道一個東西,就是SpringBoot對我們的SpringMVC還做了哪些配置,包括如何擴展,如何定制,只有把這些都搞清楚了,我們在之后使用才會更加得心應(yīng)手2022-07-07
SpringBoot + Spring Cloud Consul 服務(wù)注冊和發(fā)現(xiàn)詳細解析
這篇文章主要介紹了SpringBoot + Spring Cloud Consul 服務(wù)注冊和發(fā)現(xiàn),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
springboot2中使用@JsonFormat注解不生效的解決
這篇文章主要介紹了springboot2中使用@JsonFormat注解不生效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02

