Springboot2.X 文件上傳的大小限制


1. 在yml中配置上傳大小的限制,如下:

spring:
  servlet:
    multipart:
      max-file-size: 512000     # 文件上傳大小限制為500kb
      max-request-size: 512000  # 請求大小限制為500kb

 

2. 配置全局異常捕獲:

@RestControllerAdvice
public class CustomExceptionHandler {

    // 上傳文件超過500k,捕獲異常:MaxUploadSizeExceededException
    @ExceptionHandler(MaxUploadSizeExceededException.class)
    public IMOOCJSONResult handlerMaxUploadFile(MaxUploadSizeExceededException ex) {
        return IMOOCJSONResult.errorMsg("文件上傳大小不能超過500k,請壓縮圖片或者降低圖片質量再上傳!");
    }
}

3. 測試結果:

  <1>. 小於500KB的,沒問題可以上傳成功;

  <2>. 大於500KB的,但是小於2M的,會被攔截,測試成功;

  <3>. 大於2M的文件,上傳直接沒有反應,服務器沒有報錯沒有響應,很郁悶。這個時候測試失敗

 

3.3 的解決方案,這問題主要由於tomcat的的文件大小限制,超過了默認的開銷大小,就直接取消這個用戶請求了,限制了你的訪問,這沒毛病,只不過沒有任何的提示(因為服務器默認你的請求是惡意請求,就直接中斷了,不給你回應,這本質是好意~),如果需要提示,則需要再次在yml中新增一個配置項,如下設置-1或者100MB即可

server:
  tomcat:
    max-swallow-size: -1  # tomcat默認大小2M,超過2M的文件不會被捕獲,需要調整此處大小為100MB或者-1即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM