springboot如何配置上傳文件的maxRequestSize
配置上傳文件的maxRequestSize
springboot配置上傳文件的maxRequestSize,根據(jù)boot版本的不同會(huì) 有些差別,設(shè)置時(shí),是相當(dāng)坑的,一不注意就白設(shè)了
在application.properties中的配置為
SpringBoot-2.0
spring.servlet.multipart.max-file-size=10Mb spring.servlet.multipart.max-request-size=100Mb
SpringBoot-1.4
spring.http.multipart.maxFileSize=10Mb spring.http.multipart.maxRequestSize=100Mb
SpringBoot-1.4之前
multipart.maxFileSize = 10Mb multipart.maxRequestSize=100Mb
設(shè)置上傳文件大小的兩種方法
springboot 1.5.X系列處理方式
第一種、直接在springboot的啟動(dòng)類(lèi)里加入下面的代碼。
在配置類(lèi)中配置@Bean,注意當(dāng)前配置類(lèi)上需要加注解@Configuration
/** ? ? ? ?* 文件上傳配置 ? ? ? ?* @return ? ? ? ?*/ ? ? ? @Bean ? ? ? public MultipartConfigElement multipartConfigElement() { ? ? ? ? ? MultipartConfigFactory factory = new MultipartConfigFactory(); ? ? ? ? ? //文件最大 ? ? ? ? ? factory.setMaxFileSize("10240KB"); //KB,MB ? ? ? ? ? /// 設(shè)置總上傳數(shù)據(jù)總大小 ? ? ? ? ? factory.setMaxRequestSize("102400KB"); ? ? ? ? ? return factory.createMultipartConfig(); ? ? ? } ?
第二種、在application.properties中添加如下配置信息
配置文件直接配置,與springboot2.x版本一致
application.properties
? ? spring.servlet.multipart.max-file-size=20MB ? ? spring.servlet.multipart.max-request-size=20MB
注意
spring.http.multipart.maxFileSize=10Mb
spring.http.multipart.maxRequestSize=10Mb
已經(jīng)過(guò)期 >>>>
application.yml
?? ?spring: ?? ? ?servlet: ?? ? ? ?multipart: ?? ? ? ? ?max-file-size: 20MB ?? ? ? ? ?max-request-size: 20MB
maxFileSize 是單個(gè)文件大小
maxRequestSize是設(shè)置總上傳的數(shù)據(jù)大小
這就可以了。
根據(jù)自己需求定義吧,只能是MB和KB兩種類(lèi)型,字母大小寫(xiě)隨意,Long類(lèi)型可以的
另外這是MultipartConfigFactory類(lèi)中的轉(zhuǎn)換,可以瞅一眼
private long parseSize(String size) { ? ? ? ?Assert.hasLength(size, "Size must not be empty"); ? ? ? ? size = size.toUpperCase(Locale.ENGLISH); ? ? ? ? if (size.endsWith("KB")) { ? ? ? ? ? ? return Long.valueOf(size.substring(0, size.length() - 2)) * 1024L; ? ? ? ? } else { ? ? ? ? ? ? return size.endsWith("MB") ? Long.valueOf(size.substring(0, size.length() - 2)) * 1024L * 1024L : Long.valueOf(size); ? ? ? ? } ? }?
Springboot 2.X系列配置
第一種
在配置文件中添加配置
?@Bean ? ? public MultipartConfigElement multipartConfigElement() { ? ? ? ? MultipartConfigFactory factory = new MultipartConfigFactory(); ? ? ? ? //文件最大10M,DataUnit提供5中類(lèi)型B,KB,MB,GB,TB ? ? ? ? factory.setMaxFileSize(DataSize.of(10, DataUnit.MEGABYTES)); ? ? ? ? /// 設(shè)置總上傳數(shù)據(jù)總大小10M ? ? ? ? factory.setMaxRequestSize(DataSize.of(10, DataUnit.MEGABYTES)); ? ? ? ? return factory.createMultipartConfig(); ? ? }
第二種
配置文件直接配置
application.properties
? ? spring.servlet.multipart.max-file-size=20MB ? ? spring.servlet.multipart.max-request-size=20MB
application.yml
?? ?spring: ?? ? ?servlet: ?? ? ? ?multipart: ?? ? ? ? ?max-file-size: 20MB ?? ? ? ? ?max-request-size: 20MB
最后:Tomcat,Nginx等Http服務(wù)器也會(huì)對(duì)文件上傳做一定的限制,額,反正具體問(wèn)題具體分析。以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot多數(shù)據(jù)源讀寫(xiě)分離的自定義配置問(wèn)題及解決方法
這篇文章主要介紹了SpringBoot多數(shù)據(jù)源讀寫(xiě)分離的自定義配置,我們可以通過(guò)自定義配置數(shù)據(jù)庫(kù)配置類(lèi)來(lái)解決這個(gè)問(wèn)題,方式有很多,不同的業(yè)務(wù)采用的方式也不同,下面我簡(jiǎn)單的介紹我們項(xiàng)目的使用的方法2022-06-06淺談web服務(wù)器項(xiàng)目中靜態(tài)請(qǐng)求和動(dòng)態(tài)請(qǐng)求處理
這篇文章主要介紹了淺談web服務(wù)器項(xiàng)目中靜態(tài)請(qǐng)求和動(dòng)態(tài)請(qǐng)求處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07用Java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的布隆過(guò)濾器
這篇文章主要介紹了用Java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的布隆過(guò)濾器,布隆過(guò)濾器是1970年由布隆提出的,它實(shí)際上是一個(gè)很長(zhǎng)的二進(jìn)制向量和一系列隨機(jī)映射函數(shù),布隆過(guò)濾器可以用于檢索一個(gè)元素是否在一個(gè)集合中,需要的朋友可以參考下2023-12-12SpringBoot概述及在idea中創(chuàng)建方式
SpringBoot提供了一種快速使用Spring的方式,基于約定大于配置的思想,可以讓開(kāi)發(fā)人員不必在配置與邏輯業(yè)務(wù)之間進(jìn)行思維的切換,這篇文章主要介紹了SpringBoot概述及在idea中創(chuàng)建方式,需要的朋友可以參考下2022-09-09Mybatis特殊字符轉(zhuǎn)義查詢(xún)實(shí)現(xiàn)
本文主要介紹了Mybatis特殊字符轉(zhuǎn)義查詢(xún)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02