1. 程式人生 > >記錄解決springMvc上傳瀏覽器重定向的問題

記錄解決springMvc上傳瀏覽器重定向的問題

1、系統環境: 應用springMvc4.3.5版本,利用apache的commons-fileupload執行上傳檔案操作,配置上傳檔案的最大值,maxUploadSize配置的是200*1024*1024

2、問題:當檔案上傳超過200M時,後端的確丟擲了SizeLimitExceededException錯誤,但是前端並沒有提示錯誤,反而繼續傳送了上傳檔案的請求。

3、解決:前端為什麼會迴圈的傳送請求,暫未清楚原理,後端的處理,網路上的方法基本上是

      1、自定義過濾器,然後扔出錯誤

      2、動態的設定maxUploadSize,然後在action層判斷大小是否超過業務限制

以上兩點都有一個問題,當不用maxUploadSize控制上傳檔案大小時,當上傳的檔案大於10240都會在伺服器上儲存,這樣是比較浪費資源的,如果利用maxUploadSize,上傳框架在檔案頭中就判斷了是否大於最大上傳檔案大小。當大於maxUploadSize時扔出的錯誤被統一攔截,之後會轉發到起前端,前端有向後臺傳送請求,迴圈往復,導致tomcat認為此請求為非法請求。

    解決這個問題,可以設定maxSwallowSize值,預設為2M,當上傳的文件小於maxSwallowSize時,且上傳檔案失敗,會被tomcat忽略,這樣上傳檔案超過maxUploadSize的問題即可解決。