Dieses Beispiel teilt den spezifischen Code von SpringMVC mithilfe von MultipartFile mit, um das Datei -Upload für Ihre Referenz zu implementieren. Der spezifische Inhalt ist wie folgt
1. Konfigurationsdatei
SpringMVC verwendet MultipartFile, um Dateien hochzuladen. Daher müssen wir zunächst Multipartresolver konfigurieren: Für die Verarbeitung von Datei in Formular
<!-Multipartresolver Commosmultipartresolver für das Datei-Upload mit Spring-> <beans: bean id = "multipartresolver" p: defaultEncoding = "utf-8" p: maxUploadSize = "5400000"
Die Attribute werden ausführlich erklärt:
DefaultEnCoding = "UTF-8" ist das angeforderte Codierungsformat, Standard ISO-8859-1
MaxUploadsize = "5400000" ist die Größe der hochgeladenen Datei in Bytes
UploadTempDir = "FileUpload/temp" ist der temporäre Pfad zum Hochladen der Datei
2. Erstellen Sie ein einfaches Upload -Formular
<body> <h2> Datei-Upload-Instanz </H2> <Form Action = "FileUpload.html" method = "post" EncTTYPE = "MultiPart/Form-Data"> Datei auswählen: <Eingabe type = "Datei" name = "Datei"> <input type = "value =" sure "> </body> </body> </body> </body> </body>
Beachten Sie, dass Sie dem Formular-Tag EncTTePe = "Multipart/Form-Data" hinzufügen sollten, um anzuzeigen, dass das Formular die Datei verarbeiten muss. Dies ist das grundlegendste. Viele Menschen werden den Fehler vergessen, nach einem Upload -Fehler nach dem Programm zu suchen, vergessen Sie jedoch diesen Punkt.
3.. Upload -Kontrollklasse schreiben
1. Erstellen Sie eine Steuerklasse: FileUploadController und eine Seite, die die Ergebnisliste.JSP zurückgibt
2. Schreiben Sie die Aktion, um das Formular einzureichen
// Erhalten Sie die Anfrage der Standardkonfiguration von Spring durch die automatische Annotation von Spring @Autowired Private httpServletRequest; / *** * Laden Sie die Datei mit der @RequestParam -Annotation hoch, um anzugeben, dass die Datei im Formular MultiPartFile * * @param Datei * @Return */ @RequestMapping ("FileUpload") öffentliche String -Datei -Datei (@Requestaram "-Datei") MultiPartfile -Datei {// -Datei {// bestimmen Sie, ob die Datei @Requestaram (!) {// bestimmen, ob die Datei mit leerem (! Iisemty) {// {// //, ob die Datei leer ist (! Pfad String filepath = request.getSession (). getServletContext (). getRealPath ("/") + "Upload/" + Datei.getOriginalFileName (); // TransferTo (neue Datei (Filepath)); } catch (Ausnahme e) {e.printstacktrace (); }} // retirect return "redirect: /List.html"; }/*** * Alle Dateien in der hochgeladenen Datei lesen und zurückgeben * * @return */@RequestMapping ("Liste") public modelAndView list () {String filepath = request.getSession (). GetServletContext (). GetRealPath ("/") + "Upload/"; ModelAndView mav = new ModelAndView ("Liste"); Datei UploadDest = neue Datei (FilePath); String [] Dateinams = UploadDest.List (); für (int i = 0; i <Dateinamen } return mav; } 3.. Verwenden Sie SpringMVC Annotation RequestParam, um Dateiparameter im Formular anzugeben.
4. Geben Sie einen Webprojektpfad an, um Dateien zu speichern
5. Methode für Transferto (Datei dest) multipartFile zum angegebenen Pfad.
Zu diesem Zeitpunkt ist das grundlegende Datei -Upload vorbei.
Einige häufig verwendete Methoden der MultipartFile -Klasse:
String GetContentType () // Dateimime -Typ abrufen
InputStream getInputStream () // und dann zum Datei -Streaming gehen
String GetName () // den Namen der Dateikomponente im Formular erhalten
String getoriginalFileName () // den ursprünglichen Namen der hochgeladenen Datei erhalten
Long getSize () // Erhalten Sie die Bytegröße der Datei, Einheit -Byte
boolean isempty () // ist es leer
void TransferTo (Dateidestell) // in einer Zieldatei speichern.
4. Mehrere Dateien hochladen
Das Hochladen mehrerer Dateien ist eigentlich sehr einfach. Verwenden Sie genau wie das Hochladen anderer Parameter wie dem Kontrollkästchen denselben Namen im Formular und definieren Sie dann die Parameterklasse mit MultipartFile als Array in der Aktion.
Nächstes Implementierung:
1. Erstellen Sie ein Formular, in dem mehrere Dateien hochgeladen werden:
<body> <h2> Laden Sie mehrere Dateiinstanzen hoch </H2> <Form Action = "fileSUpload.html" methode = "post" engType = "MultiPart/Form-Data"> <p> Datei auswählen: <Eingabe type type = "Datei" Datei ausgewählt "Datei" Datei "-Datei" Datei "Datei". Typ = "Senden" value = "subieren"> </form> </body>
2. Schreiben Sie eine Aktion, um das Formular zu verarbeiten und eine separate Methode zu schreiben, um die Datei zu speichern, um die Freigabe zu erleichtern:
/**** Datei speichern* @param -Datei* @return*/private boolean SaveFile (MultiPartFile -Datei) {// Bestimmen Sie, ob die Datei leer ist, wenn (! Datei.Isempty () {try {// Datei speichern Pfad string filepath = request.getSession (). // TransferTo (neue Datei (Filepath)); zurückkehren; } catch (Ausnahme e) {e.printstacktrace (); }} return false; } 3. Schreiben Sie Aktion: @RequestMapping ("fileSUpload") public String fileSUpload (@RequestParam ("Dateien") MultiPartFile [] Dateien) {// beurteilen Sie das Dateiarray können nicht leer sein und seine Länge ist größer als 0 if (Dateien! 0; i <files.length; i ++) {multiPartFile -Datei = Dateien [i]; // die Datei SaveFile (Datei) speichern; }} // retirect return "redirect: /List.html"; }Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.