Der DispatcherServlet muss ausdrücklich mitgeteilt werden, wie man mit dem MultipArtrequest umgeht.
SpringMVC bietet die folgenden Möglichkeiten zum Hochladen von Dateien
Konfigurieren Sie xxx-servlet.xml und fügen Sie den folgenden Code hinzu:
Die Codekopie lautet wie folgt:
<bean id = "multipartresolver"
class = "org.springframework.web.multipart.commons.commonsmultipartresolver">
<!-Setzen Sie die maximale Größe der hochgeladenen Dateien auf 1MB->
<Eigenschaft name = "maxUploadsize">
<wert> 1048576 </value>
</Property>
</bean>
Die Codekopie lautet wie folgt:
<bean id = "multipartresolver"
class = "org.springframework.web.multipart.commons.commonsmultipartresolver">
<!-Setzen Sie die maximale Größe der hochgeladenen Dateien auf 1MB->
<Eigenschaft name = "maxUploadsize">
<wert> 1048576 </value>
</Property>
</bean>
Beachten Sie, dass die Dateigröße hier tatsächlich nur so ist, dass die Gesamtdateigröße
Wenn Sie die Dateigröße konfigurieren, müssen Sie der Meinung sind, dass Sie die Steuerung der Ausnahmeinformationen konfigurieren müssen
Daher ist es notwendig, eine abnormale Anzeige zu konfigurieren
Die Codekopie lautet wie folgt:
<!-Wenn SpringMVC das Hochladen-Dateilimit überschreitet, löst es org.springFramework.web.multipart.maxUploadsizeexexceedException-> aus->
<!-Diese Ausnahme wurde von SpringMVC bei der Überprüfung hochgeladener Dateiinformationen ausgelöst und wurde die Controller-Methode zu diesem Zeitpunkt nicht eingegeben->
<bean id = "exceptionResolver" "
>
<Eigenschaft name = "ExceptionMappings">
<PROPS>
<!-Bei einer maxUploadsizeexceedEdException-Ausnahme wird automatisch auf /web-inf/jsp/error_FileUpload.jsp-Seite-> springt->
<Prop
key = "org.springframework.web.multiPart.MaxUploadSizeExceedEdException"> error_fileupload </prop>
</props>
</Property>
</bean>
Die Codekopie lautet wie folgt:
<!-Wenn SpringMVC das Hochladen-Dateilimit überschreitet, löst es org.springFramework.web.multipart.maxUploadsizeexexceedException-> aus->
<!-Diese Ausnahme wurde von SpringMVC bei der Überprüfung hochgeladener Dateiinformationen ausgelöst und wurde die Controller-Methode zu diesem Zeitpunkt nicht eingegeben->
<bean id = "exceptionResolver" "
>
<Eigenschaft name = "ExceptionMappings">
<PROPS>
<!-Bei einer maxUploadsizeexceedEdException-Ausnahme wird automatisch auf /web-inf/jsp/error_FileUpload.jsp-Seite-> springt->
<Prop
key = "org.springframework.web.multiPart.MaxUploadSizeExceedEdException"> error_fileupload </prop>
</props>
</Property>
</bean>
Oder seien Sie faul und setzen Sie die Größe nicht fest, der endgültige Standardwert ist unbegrenzt. Wenn Sie die Rückgabeinformationen steuern müssen, können Sie in Betracht ziehen, die angegebenen Formatdaten in der Ausnahmebereich zurückzugeben, wie z. B. JSON
Fügen Sie nach der Konfigurationsseite wie immer das Formular Formular hinzu: EncType = "Multipart/Form-Data".
Dann gibt es Aktionen, die verarbeitet werden müssen.
Die erste Methode:
Die Codekopie lautet wie folgt:
public String Login (@RequestParam MultipartFile -Datei, Modellmodell) {
………………………
}
Die Codekopie lautet wie folgt:
public String Login (@RequestParam MultipartFile -Datei, Modellmodell) {
………………………
}
Der Name der Datei muss garantiert mit dem Attributwert in <Eingabe type = file> übereinstimmen.
Die Codekopie lautet wie folgt:
public string login (@valid userInfo userInfo, BindingResult -Ergebnis, @RequestParam MultipartFile [] Dateien, Modellmodell) {
………………………
}
Die Codekopie lautet wie folgt:
public string login (@valid userInfo userInfo, BindingResult -Ergebnis, @RequestParam MultipartFile [] Dateien, Modellmodell) {
………………………
}
Eine einzelne Datei kann weggelassen werden @RequestParam Mehrere Dateien können nicht weggelassen werden
Die zweite Methode:
Die Codekopie lautet wie folgt:
Public ModelAndview Handlersquest (HttpServletRequest -Anfrage,
HttpServletResponse -Antwort) löst eine Ausnahme aus {
// Transformation in Multiparthttprequest:
MultiparthttpServletRequest multipArtrequest = (multiparthttpServletRequest) Anfrage;
// die Datei erhalten:
MultiPartFile -Datei = multipArtrequest.getFile ("Datei");
}
Die Codekopie lautet wie folgt:
Public ModelAndview Handlersquest (HttpServletRequest -Anfrage,
HttpServletResponse -Antwort) löst Ausnahme {aus {
// Transformation in Multiparthttprequest:
MultiparthttpServletRequest multipArtrequest = (multiparthttpServletRequest) Anfrage;
// die Datei erhalten:
MultiPartFile -Datei = multipArtrequest.getFile ("Datei");
}
Auf diese Weise können Sie auch die Datei erhalten
Tatsächlich besteht die erste Konfiguration darin, zwei JAR -Pakete hinzuzufügen:
Commons-fileUpload-1.2.2.jar
commons-io-2.1.jar