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即可

官網itzixi.com
微信公衆号:BeJavaGod
新浪微網誌
知乎
簡書
cnblogs
今日頭條
豆瓣
--> 同步更新