Dieser Artikel teilt den spezifischen Code für die Spring -Startdatei zum Hochladen für Ihre Referenz. Der spezifische Inhalt ist wie folgt
1. Erstellen Sie ein Maven -Webprojekt, konfigurieren Sie dann die Datei pom.xml und fügen Sie Abhängigkeiten hinzu:
<Depopenty> <gruppe> org.springFramework.boot </Groupid> <artifactId> Spring-Boot-Starter-Web </artifactid> <version> 1.0.2.Release </Version> </abhängig>
2. Geben Sie im WebApp -Verzeichnis ein Formular in die Datei idex.jsp ein:
<html> <body> <Formular Methode = "post" engType = "MultiPart /Form-Data" action = " /Upload"> Datei zum Hochladen: <Eingabe type = "Datei" name "name =" file "> <br /> name: <input type =" text "name =" name "> <br /> <br /> <Eingabe type =" value = "value =" upload ". </form> </body>
Dieses Formular ist unsere simulierte Upload -Seite
3. Schreiben Sie einen Controller, der dieses Formular verarbeitet:
importieren java.io.bufferedOutputStream; Import Java.io.file; importieren java.io.fileoutputStream; import org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.requestMethod; import org.springframework.web.bind.annotation.requestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.multipartFile; @Controller public class FileUploadController {@RequestMapPing (value = "/upload", method = requestMethod.get) public @Responbody String conesloadInfo () {return "Sie können eine Datei hochladen, indem Sie auf dieselbe URL veröffentlichen." } @RequestMapping (value = "/upload", method = requestMethod.post) public @Responbody String handleFileUpload (@RequestParam ("Name") String -Name, @RequestParam ("Datei") multiPartFile -Datei {if (! Iisempty () {) {try {] byte [] bytes = bytes = bytes = bytes = bytes = bytes BufferedOutputStream stream = new bufferedOutputStream (neuer FileOutputStream (neue Datei (Name + "-Uploaded"))); Stream.Write (Bytes); stream.close (); Gibt "Sie erfolgreich hochgeladen" + Name + "in" + name + "-Pladeed!"; } catch (Ausnahme E) {return "Sie haben es nicht hochgeladen" + Name + "=>" + e.getMessage (); }} else {return "Sie haben nicht hochgeladen" + name + ", weil die Datei leer war."; }}}4. Dann haben wir einige Einschränkungen in den hochgeladenen Dateien und schreiben die Hauptmethode, um das Web zu starten:
import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.enableAutoconfiguration; import org.springframework.boot.context.embeded.multiPartConfigFactory; import org.springframework.context.annotation.bean; import org.springframework.context.annotation.comPonentscan; import org.springframework.context.annotation.configuration; import javax.servlet.multipartConfigelement; @Configuration @Componentscan @enableAutoConfiguration Public Class Application {@Bean public MultiPartConFigelement MultiPartConfigelement () {MultiPartConFigFactory Factory = new MultiPartConFigFactory (); factory.setMaxFileSize ("128KB"); factory.setMaxRequestSize ("128KB"); return factory.createmultipartConfig (); } public static void main (String [] args) {SpringApplication.run (application.class, args); }}5. Besuchen Sie dann http: // localhost: 8080/hochladen, um die Seite zu sehen.
Das obige Beispiel implementiert die Funktion des Hochladens einer einzelnen Datei. Unter der Annahme, dass wir die Funktion des Batch -Hochladens von Dateien jetzt implementieren möchten, müssen wir nur den obigen Code einfach ändern. In Anbetracht des Längenproblems ist Folgendes nur ein anderer Code als der oben genannte, und die Beschreibungen werden nicht wie oben veröffentlicht. :
1. Fügen Sie batchUpload.jsp -Datei hinzu
<html> <body> <Formmethode = "post" engType = "MultiPart/Form-data" action = "/batch/upload"> Datei zum Upload: <input type = "Datei" name = "Datei"> <br/> Datei zum Upload: <Eingabe-Typ = "Datei" name "name" -Datei "> <br/> <Eingabe-Typ =" value = "value =" upload "upload" upload "upload". </form> </body> </html>
2. Fügen Sie die BatchFileUploadController.java -Datei hinzu:
import org.springframework.steretype.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.requestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.multipartFile; import org.springframework.web.multipart.multiparthttpServletRequest; importieren javax.servlet.http.httpServletRequest; importieren java.io.bufferedOutputStream; Import Java.io.file; importieren java.io.fileoutputStream; importieren java.util.list; /*** Erstellt von Wenchao.ren am 2014/4/26. */@Controller public class batchFileUploadController {@RequestMapping (value = "/batch/upload", method = requestMethod.post) public @Responbody String handle fileUpload (httpServletRequest) {list <MultipartFile> Dateien = (MultipartPlettpletRevlEquest). für (int i = 0; i <files.size (); ++ i) {MultiPartFile -Datei = Dateien.get (i); String name = Datei.getName (); if (! file.isempty ()) {try {byte [] bytes = file.getBytes (); BufferedOutputStream stream = new bufferedOutputStream (neuer FileOutputStream (neue Datei (Name + i))); Stream.Write (Bytes); stream.close (); } catch (Ausnahme E) {return "Sie haben es nicht hochgeladen" + Name + "=>" + e.getMessage (); }} else {return "Sie haben nicht hochgeladen" + name + ", weil die Datei leer war."; }} return "erfolgreich hochladen"; }}Eine so einfache Batch -Upload -Funktion ist in Ordnung, ist sie nicht sehr einfach?
Hinweis: Der obige Code dient nur zur Demonstration, daher verfolgt der Codierungsstil einen lässigen Ansatz, und es wird nicht empfohlen, dass jeder ihn nachahmt.
Referenz: Multipartresolver implementiert die Datei -Upload -Funktion
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.
1. Multipartresolver kann auch die Datei -Upload -Funktion implementieren. Referenzartikel: