首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

SpringMVC 文件上傳大小超限異常頁面跳轉失敗:MaxUploadSizeExceededException 處理

     編輯:程式設計疑難解答

問題現象

上傳文件超過配置大小 (預設 1MB) 拋出 MaxUploadSizeExceededException,異常能捕獲但無法跳轉到友好提示頁,瀏覽器顯示默認錯誤頁或空白。

根本原因

SpringMVC 的 MultipartResolver 在 **Controller 方法進入前** 解析請求,若文件過大直接拋出異常,**未進入 Controller**,因此 @ExceptionHandler、**ControllerAdvice** 均無法捕獲。

解決方案

  1. 配置 SimpleMappingExceptionResolver (XML):
    <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="exceptionMappings">
            <props>
                <prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">error/uploadSizeExceeded</prop>
            </props>
        </property>
    </bean>
  2. 或繼承 DefaultHandlerExceptionResolver (Java Config):重寫 handleException 針對性處理。
  3. 前端預檢 (輔助):JS 檢查 file.size 超限直接提示,減少無效請求。

配置上傳大小限制

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="10485760" /> <!-- 10MB -->
</bean>

關鍵點

**異常發生在 Controller 之前**,必須在 **HandlerExceptionResolver** 層面全域性攔截解析,而非 Controller 內部 @ExceptionHandler。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved