Springboot:上傳文件大小超出限制如何捕獲異常

Spring Boot 默認(rèn)上傳文件大小限制是 1MB,默認(rèn)單次請(qǐng)求大小是 10MB巾表,超出大小會(huì)跑出 MaxUploadSizeExceededException 異常。
問題出現(xiàn)了略吨,當(dāng)文件超過 1M 和超過 10M 時(shí)異常是有區(qū)別的集币,這也是本文所說的重點(diǎn)。

解決方案

spring:
    servlet:
        multipart:
        max-request-size: 15MB #改為自己的想要的
        max-file-size: 5MB #改為自己的想要的
        enabled: true
server:
  tomcat:
    max-swallow-size: 100MB #重要的一行翠忠,修改tomcat的吞吐量

注意上面最重要的是要配置內(nèi)嵌的 tomcat 的最大吞吐量即 max-swallow-size鞠苟,可以設(shè)置 -1 不限制,也可以設(shè)置一下比較大的數(shù)字這里我設(shè)置 100M。當(dāng)上傳文件超 tomcat 的大小限制后會(huì)先于 Controller 觸發(fā)異常当娱,所以這時(shí)我們的異常處理類無法捕獲 Controller 層的異常吃既。

使用全局異常處理類來捕獲異常

@RestControllerAdvice
public class GlobalExceptionHandler {

    static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);

 @ExceptionHandler(value = MultipartException.class)
    public @ResponseBody
    Response handleBusinessException(MaxUploadSizeExceededException ex) {
        String msg;
        if (ex.getCause().getCause() instanceof FileUploadBase.FileSizeLimitExceededException) {
            logger.error(ex.getMessage());
            msg = "上傳文件過大[單文件大小不得超過10M]";
        } else if (ex.getCause().getCause() instanceof FileUploadBase.SizeLimitExceededException) {
            logger.error(ex.getMessage());
            msg = "上傳文件過大[總上傳文件大小不得超過10M]";
        } else {
            msg = "上傳文件失敗";
        }

        return new Response("-1", msg, null);

    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市跨细,隨后出現(xiàn)的幾起案子鹦倚,更是在濱河造成了極大的恐慌,老刑警劉巖冀惭,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件震叙,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡散休,警方通過查閱死者的電腦和手機(jī)媒楼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來戚丸,“玉大人划址,你說我怎么就攤上這事』璧危” “怎么了猴鲫?”我有些...
    開封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)谣殊。 經(jīng)常有香客問我拂共,道長(zhǎng),這世上最難降的妖魔是什么姻几? 我笑而不...
    開封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任宜狐,我火速辦了婚禮,結(jié)果婚禮上蛇捌,老公的妹妹穿的比我還像新娘抚恒。我一直安慰自己,他們只是感情好络拌,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開白布俭驮。 她就那樣靜靜地躺著,像睡著了一般春贸。 火紅的嫁衣襯著肌膚如雪混萝。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天萍恕,我揣著相機(jī)與錄音逸嘀,去河邊找鬼。 笑死允粤,一個(gè)胖子當(dāng)著我的面吹牛崭倘,可吹牛的內(nèi)容都是我干的翼岁。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼司光,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼琅坡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起飘庄,我...
    開封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤脑蠕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后跪削,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谴仙,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡碾盐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了掀虎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡付枫,死狀恐怖烹玉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情阐滩,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布继效,位于F島的核電站,受9級(jí)特大地震影響装获,放射性物質(zhì)發(fā)生泄漏瑞信。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一穴豫、第九天 我趴在偏房一處隱蔽的房頂上張望凡简。 院中可真熱鬧,春花似錦潘鲫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浊竟。三九已至津畸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肉拓,已是汗流浹背后频。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工暖途, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人驻售。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓欺栗,卻偏偏與公主長(zhǎng)得像毫痕,于是被迫代替她去往敵國(guó)和親迟几。 傳聞我的和親對(duì)象是個(gè)殘疾皇子消请,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容