Ich habe einen Controller mit einer MultipartConfig
Annotation (ein Ausschnitt davon ist unten gezeigt):
Beim Hochladen einer Datei an diesen Endpunkt werden jedoch die standardmäßigen mehrteiligen Konfigurationswerte verwendet:
%Vor%Meine Bewerbung sieht so aus:
%Vor% Gibt es etwas, das mir fehlt, das die @MultipartConfig
-Anmerkung wirksam werden lässt?
Wenn Sie nur die Multipart-Eigenschaften steuern möchten, können Sie die Eigenschaften multipart.max-file-size
und multipart.max-request-size
verwenden. Beispielsweise könnten Sie die maximale Größe auf 100Mb
erhöhen, indem Sie in Ihrer application.properties
-Datei die folgenden Konfigurationselemente hinzufügen:
Werte können das Suffix MB
oder KB
verwenden, um eine Megabyte oder Kilobyte Größe anzugeben.
Unter der Haube erstellt Spring Boot einen MultipartConfigElement
basierend auf MultipartProperties
und dieser MultipartConfigElement
wird in der Servlet Registrierung verwendet, wie in Spring MVC Dokumentation . Sie können sich MultipartAutoConfiguration
und DispatcherServletConfiguration
und Checkout Spring Boot-Dokumentation für weitere Informationen.
Um benutzerdefinierte Beschränkungen für mehrteilige Uploads festzulegen, müssen die folgenden Eigenschaften verwendet werden (für eine Stichprobengröße von 30 MB):
%Vor%In unseren Projekten fand ich heraus, dass einer von ihnen auf Spring Boot Version 1.3.5 war, also für Versionen & lt; 1.4 sollten Sie
verwenden %Vor%Aus der Dokumentation ( v1.4.0) :
Spring Boot umfasst die Servlet 3
javax.servlet.http.Part
API zu unterstützt das Hochladen von Dateien. Standardmäßig konfiguriert Spring Boot Spring MVC mit einer maximalen Dateigröße von 1 MB pro Datei und maximal 10 MB Dateidaten in einer einzigen Anfrage. Sie können diese Werte sowie die Speicherort, an dem Zwischendaten gespeichert sind (z. B. an/tmp
Verzeichnis) und der Schwellenwert, nach dem Daten von der Festplatte gelöscht werden Verwenden der Eigenschaften, die in der KlasseMultipartProperties
verfügbar sind. Wenn du möchte angeben, dass Dateien unbegrenzt sein sollen, z. B. diespring.http.multipart.max-file-size
Eigenschaft zu-1
.Die mehrteilige Unterstützung ist hilfreich, wenn Sie mehrere Teile erhalten möchten codierte Dateidaten als
@RequestParam
-annotated Parameter des TypsMultipartFile
in einer Spring-MVC-Controller-Handler-Methode.
Gleiche Dokumentation für Version 1.3.8:
Wenn Sie festlegen möchten, dass Dateien unbegrenzt sein sollen, setzen Sie z. B. die Option
multipart.maxFileSize
Eigenschaft zu-1
.
Mit Spring Boot 2.0 sollten Sie dies in Ihrer application.yml
verwenden %Vor%Von Dokumentation :
Spring Boot umfasst die Servlet 3
javax.servlet.http.Part
API, um das Hochladen von Dateien zu unterstützen. Standardmäßig konfiguriert Spring Boot Spring MVC mit einer maximalen Größe von 1 MB pro Datei und maximal 10 MB an Dateidaten in einer einzigen Anfrage. Sie können diese Werte überschreiben, den Speicherort, in dem Zwischendaten gespeichert sind (z. B. im Verzeichnis/tmp
), und den Schwellenwert, über den Daten mithilfe der Eigenschaften in der KlasseMultipartProperties
auf die Festplatte geschrieben werden. Wenn Sie beispielsweise angeben möchten, dass Dateien unbegrenzt sein sollen, legen Sie die Eigenschaft spring.servlet.multipart.max-file-size auf-1
fest.
Entnommen aus Anhang A der Dokumentation
spring.servlet.multipart.max-file-size = 1 MB # Maximale Dateigröße. Werte können die Suffixe "MB" oder "KB" verwenden, um Megabyte bzw. Kilobyte anzugeben.
spring.servlet.multipart.max-request-size = 10 MB # Maximale Anforderungsgröße. Werte können die Suffixe "MB" oder "KB" verwenden, um Megabyte bzw. Kilobyte anzugeben.
Tags und Links java spring spring-mvc spring-boot