[JAVA] Lors du téléchargement d'un fichier avec Spring Boot, la gestion des erreurs est effectuée lorsque la taille maximale du fichier est dépassée.

Vous pouvez définir la taille de fichier maximale lors du téléchargement de fichiers avec Spring Boot. Définissez les paramètres suivants dans application.propertes

spring.servlet.multipart.enabled=true
#Taille maximale d'un fichier
spring.servlet.multipart.max-file-size=10MB
#Taille maximale de tous les fichiers multiples
spring.servlet.multipart.max-request-size=50MB

Une erreur s'affiche si vous essayez de télécharger un fichier dont la taille est supérieure à la taille définie ici. Vous trouverez ci-dessous un exemple de personnalisation de cette gestion des erreurs.

  1. Créez la classe enfant de HandlerExceptionResolver Créez la classe suivante n'importe où dans le projet. Cela permet d'obtenir une exception pour l'erreur de taille de fichier.
@Component
public class ExceptionResolver implements HandlerExceptionResolver {
  @Override
  public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception e) {
    ModelAndView modelAndView = new ModelAndView();
    if (e instanceof MultipartException && e.getCause() instanceof IllegalStateException && e.getCause().getCause() instanceof FileSizeLimitExceededException) {
      //Les messages que vous souhaitez afficher, etc.
      modelAndView.addObject("message", "Taille du fichier dépassée");
    }
    //Spécifiez l'écran vers lequel vous souhaitez effectuer la transition
    modelAndView.setViewName("error");
    return modelAndView;
  }
}
  1. Définissez la taille maximale de l'hirondelle du Tomcat intégré Réglez MaxSwallowSize du Tomcat intégré à -1 car 1. seul ne fonctionne pas bien. La méthode suivante est décrite dans XXXXApplication.java où se trouve la méthode principale.
 @Bean
  public TomcatServletWebServerFactory containerFactory() {
    return new TomcatServletWebServerFactory() {
      protected void customizeConnector(Connector connector) {
        super.customizeConnector(connector);
        if (connector.getProtocolHandler() instanceof AbstractHttp11Protocol) {

          ((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setMaxSwallowSize(-1);
        }
      }
    };
  }

Recommended Posts

Lors du téléchargement d'un fichier avec Spring Boot, la gestion des erreurs est effectuée lorsque la taille maximale du fichier est dépassée.
Qu'est-ce qu'un fichier .original Spring Boot?
[Note] Fichier de configuration lors de l'utilisation de Logback avec Spring Boot
Un mémorandum lors de la création d'un service REST avec Spring Boot
Téléchargement de fichiers avec Spring Boot
Une histoire remplie des bases de Spring Boot (résolu)
À propos du comportement lors de la création d'un mappage de fichiers avec Java
Je souhaite contrôler la taille de fichier maximale pour le téléchargement de fichiers pour chaque URL dans Spring Boot
Lorsqu'un fichier Java créé avec l'éditeur Atom est déformé lorsqu'il est exécuté à l'invite de commande
gestion des erreurs wsimport (une classe / interface avec le même nom "xxx" est déjà utilisée)
Une erreur 404 se produit lors du test de l'authentification par formulaire avec Spring Security
Lisez le fichier sous le chemin de classe sous forme de chaîne de caractères avec ressort
Créez un projet de développement d'application Spring Boot avec la commande cURL + tar
Créez un fichier jar avec la commande
Erreur Javaw.exe lors du démarrage de Spring Boot (STS)
Lors de l'introduction de JOOQ dans Spring Boot, une histoire qui a été traitée parce qu'une erreur s'est produite autour de Liquidbase
[Spring Framework] Traitement des erreurs de requête HTTP à l'aide de RestTemplate lors de l'utilisation d'un serveur proxy
Paramètres du gestionnaire de ressources lors de la livraison du SPA avec la fonction de ressource statique de Spring Boot
À partir de Spring Boot 2.3, la page d'erreur par défaut ne contient plus d'informations détaillées sur l'erreur
Créez un site Web avec Spring Boot + Gradle (jdk1.8.x)
Créez une application de recherche simple avec Spring Boot
Je souhaite lire le fichier de propriétés avec un nom de fichier autre que application.yml ou application- [nom du profil] .yml avec Spring Boot
Gestion des erreurs lorsque la dépendance Gradle utilise SLF4J
Créer un serveur API Web avec Spring Boot
[Spring Boot] Comment se référer au fichier de propriétés
Lorsque j'appelle le fichier avec la classe # getResource à partir du fichier jar, il devient Not Found et c'est un mémorandum merdique
Créer un environnement de développement Spring Boot avec docker
Ce à quoi j'étais accro lors du développement d'une application Spring Boot avec VS Code
Personnalisez l'affichage lorsqu'une erreur telle que 404 Not Found se produit dans Spring Boot
Un avertissement s'affiche lorsque vous essayez d'utiliser un entier énorme avec les variables spéciales $ 1, $ 2, $ 3 ...
[Spring] Lire un message à partir d'un fichier YAML avec MessageSource
Accédez au h2db intégré de Spring Boot avec jdbcTemplate
[Compatible JUnit 5] Ecrire un test en utilisant JUnit 5 avec Spring boot 2.2, 2.3
Implémentez une API Rest simple avec Spring Security avec Spring Boot 2.0
Personnalisez la réponse aux erreurs de l'API REST avec Spring Boot (Partie 2)
[JUnit 5] Ecrivez un test de validation avec Spring Boot! [Test de paramétrage]
Créez un site de démonstration simple avec Spring Security avec Spring Boot 2.1
Personnalisez la réponse aux erreurs de l'API REST avec Spring Boot (Partie 1)
J'ai écrit un test avec Spring Boot + JUnit 5 maintenant
Téléchargement de fichiers avec Spring Boot (ne pas utiliser de fichier en plusieurs parties)
[Rails] Que faire lorsque la vue se réduit lorsqu'un message est affiché avec la méthode des erreurs