Änderung der Dateigröße (maxUploadSize) abhängig vom Controller

8

Ich habe ein Spring MVC-Web mit zwei verschiedenen Seiten, die verschiedene Formen haben, um verschiedene Dateien hochzuladen. Einer von ihnen sollte eine Begrenzung von 2 MB haben, während der andere eine Begrenzung von 50 MB haben sollte.

Im Moment habe ich diese Einschränkung in meiner app-config.xml:

%Vor%

Und ich könnte die maxUploadSize-Ausnahme in meinem Hauptcontroller wie folgt auflösen:

%Vor%

Aber das kontrolliert natürlich nur die Grenze von 2 MB. Wie könnte ich die Beschränkung für die 20MB eins machen? Ich habe diese Lösung ausprobiert: Ссылка , die die Begrenzung in Laufzeit aktualisiert. Dies aktualisiert es jedoch für jede Sitzung und jeden Controller. Wenn also ein Benutzer eine Datei für das erste Formular hochlädt, sollte eine andere, die das Hochladen in der zweiten Form verwendet, die Beschränkung der ersten haben ...

Irgendwelche Hilfe? Danke

    
Goyo 16.05.2013, 11:09
quelle

4 Antworten

3

So ist es möglich: Überschreiben Sie die Klasse DispatcherServlet . Ein Beispiel würde wahrscheinlich wie folgt aussehen:

%Vor%

Angenommen, Sie haben in Ihrem Anwendungskontext mehrere MultipartResolver konfiguriert (im Beispielcode vermutlich 'resolver1' und 'resolver2').

Natürlich, wenn Sie DispatcherServlet in Ihrem web.xml konfigurieren, verwenden Sie diese Klasse anstelle von Spring DispatcherServlet .

Eine andere Möglichkeit: A MultipartFilter könnte ebenfalls verwendet werden. Überschreiben Sie einfach das lookupMultipartResolver (HttpServletRequest Anfrage) Methode und suchen Sie den erforderlichen Resolver selbst. Allerdings gibt es einige Wenn und Aber. Suchen Sie in der Dokumentation nach, bevor Sie diese verwenden.

    
Bhashit Parikh 18.05.2013 08:05
quelle
2

Es mag auf den ersten Blick nicht die beste Lösung sein, aber es hängt von Ihren Anforderungen ab.

Sie können eine globale Option mit maximaler Upload-Größe für alle Controller festlegen und sie mit einem niedrigeren Wert für bestimmte Controller überschreiben.

application.properties Datei (Spring Boot)

%Vor%

Laden Sie den Controller mit check

hoch %Vor%

Im Falle einer Datei größer als 2MB erhalten Sie diese Ausnahme im Protokoll:

%Vor%     
naXa 19.06.2017 11:03
quelle
0

Hier gibt es eine elegante Lösung Spring Boot: ClassNotFoundException beim Konfigurieren von maxUploadSize von CommonMultipartResolver

Sie können Ihre Anwendung application.properties ändern, um die maximale Uploadgröße nach Ihren Wünschen zu ändern

    
Mina Samy 17.11.2015 20:33
quelle
0
%Vor%     
Isank 16.06.2017 10:25
quelle

Tags und Links