Spring MVC - Comment gérer l'exception de dépassement de la taille de téléchargement maximale
Au printemps, vous pouvez déclarer un@ControllerAdvice
pour attraper l'exception de dépassement de la taille de téléchargement maximale laide comme ceci:
Solution
Dépend des types demultipartResolver
:
-
StandardServletMultipartResolver
- catchMultipartException
, reportez-vous àthis example. -
CommonsMultipartResolver
- catchMaxUploadSizeExceededException
- se réfère àthis example.
GlobalExceptionHandler.java
package com.example.exception; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.multipart.MaxUploadSizeExceededException; import org.springframework.web.multipart.MultipartException; import org.springframework.web.servlet.mvc.support.RedirectAttributes; @ControllerAdvice public class GlobalExceptionHandler { //StandardServletMultipartResolver @ExceptionHandler(MultipartException.class) public String handleError1(MultipartException e, RedirectAttributes redirectAttributes) { redirectAttributes.addFlashAttribute("message", e.getCause().getMessage()); return "redirect:/uploadStatus"; } //CommonsMultipartResolver @ExceptionHandler(MaxUploadSizeExceededException.class) public String handleError2(MaxUploadSizeExceededException e, RedirectAttributes redirectAttributes) { redirectAttributes.addFlashAttribute("message", e.getCause().getMessage()); return "redirect:/uploadStatus"; } }
Tomcat Connection Reset
Si vous avez déployé sur Tomcat et que vous ne pouvez pas détecter l'exception de dépassement de la taille du fichier, cela peut être dû au paramètre TomcatmaxSwallowSize
. Lire ceci -Spring file
upload and connection reset issue