[JAVA] Beim Hochladen einer Datei mit Spring Boot wird eine Fehlerbehandlung durchgeführt, wenn die maximale Dateigröße überschritten wird.

Sie können die maximale Dateigröße festlegen, wenn Sie Dateien mit Spring Boot hochladen. Stellen Sie die folgenden Parameter in application.propertes ein

spring.servlet.multipart.enabled=true
#Maximale Größe einer Datei
spring.servlet.multipart.max-file-size=10MB
#Maximale Größe aller mehreren Dateien
spring.servlet.multipart.max-request-size=50MB

Ein Fehler wird angezeigt, wenn Sie versuchen, eine Datei hochzuladen, die größer als die hier festgelegte Größe ist. Ein Beispiel für die Anpassung dieser Fehlerbehandlung wird nachfolgend beschrieben.

  1. Erstellen Sie eine untergeordnete Klasse von HandlerExceptionResolver Erstellen Sie die folgende Klasse an einer beliebigen Stelle im Projekt. Dies ermöglicht es, eine Ausnahme für einen Dateigrößenfehler zu erhalten.
@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) {
      //Nachrichten, die Sie anzeigen möchten, usw.
      modelAndView.addObject("message", "Dateigröße überschritten");
    }
    //Geben Sie den Bildschirm an, zu dem Sie wechseln möchten
    modelAndView.setViewName("error");
    return modelAndView;
  }
}
  1. Stellen Sie die maximale Schwalbengröße des eingebauten Tomcat ein Setzen Sie MaxSwallowSize des integrierten Tomcat auf -1, da 1. alleine nicht gut funktioniert. Die folgende Methode wird in XXXXApplication.java beschrieben, wo sich die Hauptmethode befindet.
 @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

Beim Hochladen einer Datei mit Spring Boot wird eine Fehlerbehandlung durchgeführt, wenn die maximale Dateigröße überschritten wird.
Was ist eine Spring Boot-Originaldatei?
[Hinweis] Festlegen der Datei bei Verwendung von Logback mit Spring Boot
Ein Memorandum beim Erstellen eines REST-Service mit Spring Boot
Datei-Upload mit Spring Boot
Eine Geschichte voller Grundlagen von Spring Boot (gelöst)
Informationen zum Verhalten beim Erstellen einer Dateizuordnung mit Java
Ich möchte die maximale Dateigröße für das Hochladen von Dateien für jede URL in Spring Boot steuern
Wenn eine mit dem Atom-Editor erstellte Java-Datei bei der Ausführung an der Eingabeaufforderung verstümmelt wird
wsimport-Fehlerbehandlung (Eine Klasse / Schnittstelle mit dem gleichen Namen "xxx" wird bereits verwendet)
Beim Testen der Formularauthentifizierung mit Spring Security tritt ein 404-Fehler auf
Lesen Sie die Datei unter dem Klassenpfad als Zeichenfolge mit spring
Erstellen Sie mit dem Befehl cURL + tar ein Spring Boot-App-Entwicklungsprojekt
Erstellen Sie mit dem Befehl eine JAR-Datei
Javaw.exe Fehler beim Starten von Spring Boot (STS)
Bei der Einführung von JOOQ in Spring Boot wurde eine Geschichte behandelt, die behandelt wurde, weil bei Liquidbase ein Fehler aufgetreten ist
[Spring Framework] Umgang mit HTTP-Anforderungsfehlern mithilfe von RestTemplate bei Verwendung eines Proxyservers
Ressourcenhandler-Einstellungen bei der Bereitstellung von SPA mit der statischen Ressourcenfunktion von Spring Boot
Ab Spring Boot 2.3 enthält die Standardfehlerseite keine detaillierten Fehlerinformationen mehr
Erstellen Sie eine Website mit Spring Boot + Gradle (jdk1.8.x)
Erstellen Sie mit Spring Boot eine einfache Such-App
Ich möchte die Eigenschaftendatei mit einem anderen Dateinamen als application.yml oder application- [Profilname] .yml mit Spring Boot lesen
Fehlerbehandlung, wenn die Gradle-Abhängigkeit SLF4J verwendet
Erstellen Sie einen Web-API-Server mit Spring Boot
[Spring Boot] So verweisen Sie auf die Eigenschaftendatei
Wenn ich die Datei mit der Klasse # getResource aus der JAR-Datei aufrufe, wird sie nicht gefunden und ist ein beschissenes Memorandum
Erstellen Sie mit Docker eine Spring Boot-Entwicklungsumgebung
Wovon ich süchtig war, als ich eine Spring Boot-Anwendung mit VS Code entwickelte
Passen Sie die Anzeige an, wenn im Spring Boot ein Fehler wie 404 Not Found auftritt
Eine Warnung wird angezeigt, wenn versucht wird, eine große Ganzzahl mit den speziellen Variablen $ 1, $ 2, $ 3 ... zu verwenden.
[Spring] Lesen Sie mit MessageSource eine Nachricht aus einer YAML-Datei
Greifen Sie mit jdbcTemplate auf das integrierte h2db des Spring Boot zu
[JUnit 5-kompatibel] Schreiben Sie einen Test mit JUnit 5 mit Spring Boot 2.2, 2.3
Implementieren Sie eine einfache Rest-API mit Spring Security mit Spring Boot 2.0
Passen Sie die Antwort auf REST-API-Fehler mit Spring Boot an (Teil 2).
[JUnit 5] Schreiben Sie einen Validierungstest mit Spring Boot! [Parametrisierungstest]
Erstellen Sie mit Spring Security 2.1 eine einfache Demo-Site mit Spring Security
Passen Sie die Antwort auf REST-API-Fehler mit Spring Boot an (Teil 1).
Ich habe jetzt einen Test mit Spring Boot + JUnit 5 geschrieben
Datei-Upload mit Spring Boot (keine mehrteilige Datei verwenden)
[Schienen] Was tun, wenn die Ansicht zusammenbricht, wenn eine Nachricht mit der Fehlermethode angezeigt wird?