Drei Möglichkeiten, um Dateien in SpringMVC hochzuladen, laden Sie den Code einfach hoch. Sie können auf einen Blick erkennen
Rezeption:
<%@ page Language = "java" contentType = "text/html; charset = utf-8" pageCoding = "utf-8"%> <! docType html public "-// w3c // dtd html 4.01 transitional // en" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Insert title here</title></head><body><form name="serForm" action = "/springmvc006/fileUpload" methode = "post" engType = "MultiPart/Form-Data"> <H1> Upload-Dateien mit Streaming </H1> <Eingabe type = "Datei" name = "Datei"> <Eingabe type = "subly" value = "upload" // Form> <Form 2 "post2" action2 "action ="/Springmvc006/Datei ". EncTTYPE = "MultiPart/Form-Data"> <h1> Upload-Dateien mit Dateien hochladen. EncTTEpe = "MultiPart/Form-Data"> <h1> Laden Sie die Datei mit der Methode hoch, die von Spring MVC </h1> <Eingabe type = "Datei" name = "Datei"> <Eingabe type = "value =" hochladen "/> </form> </body> </html>>
Konfiguration:
<!-MultiPart-Datei-Upload-> <bean id = "multipartresolver"> <Eigenschaft name = "maxUploadsize" value = "104857600" /> <Eigenschaft name = "maxinMemorySize" value = "4096" /> <Eigenschaft name = "DefaultEnCoding" Value = "utf-8"> < /< /ban>
Hinter der Bühne:
Methode 1:
/** Laden Sie die Datei über den Stream hoch* @RequestParam ("Datei") die von der Steuerung von name = Datei kontrollierte Datei in commonsMultiPartFile -Objekt*/@RequestMapping ("FileUpload") öffentliche String -DateiElpload (@RequestParam ("Datei") CommonsmultiPartfile -Löwen). startTime = system.currentTimemillis (); System.out.println ("Dateiname:"+file.getOriginalFileName ()); Versuchen Sie {// den Ausgabestream OutputStream OS = New FileOutputStream ("e:/"+neues Datum (). GetTime ()+Datei.getOriginalFileName ()); // Erhalten Sie den Eingabestream CommonsMultipartFile, um den Stream -Eingabestream der Datei direkt zu erhalten. File.getInputStream (); int temp; // Bytes nacheinander lesen und schreiben und (temp = is.read ())! = (-1)) {os.write (temp); } os.flush (); os.close (); IS.CLOSE (); } catch (FilenotFoundException e) {// Todo automatisch generierter Catch-Block e.printstacktrace (); } Long EndTime = System.currentTimemillis (); System.out.println ("Laufzeit von Method eins:"+string.Valueof (Endime-StartTime)+"MS"); zurück "/Erfolg"; }Methode 2:
/** Verwenden Sie Datei.transto, um die hochgeladene Datei zu speichern System.out.println ("Dateiname:"+file.getOriginalFileName ()); String path = "e:/"+neues Datum (). GetTime ()+file.getOriginalFileName (); Datei newfile = new Datei (Pfad); // Schreiben Sie die Datei direkt über die commonsMultiPartFile -Methode (Hinweis diesmal) Datei.transferto (Newfile); Long EndTime = System.currentTimemillis (); System.out.println ("Die Laufzeit von Methode zwei:"+string.ValueOf (Endime-StartTime)+"MS"); zurück "/Erfolg"; }Methode 3:
/**Verwenden Sie die Methode zum Hochladen von Dateien von Spring*/ @RequestMapping ("SpringUpload") public String SpringUpload (httpServletRequest -Anforderung) löst illegalStateException aus, ioException {long starttime = system.currentTimillis (); // Initialisieren Sie den aktuellen Kontext in CommonsMutipartresolver (Multipart Parser) commonsMultipArtresolver multipartresolver = new commonsMultipArtresolver (Request.GetSession (). GetServletContext ()); // Überprüfen Sie, ob es in Form (multipartresolver.ismultiPart (Anfrage)) in Form (multipartresolver.ismultiPart (request)) {// Anforderung an Request Request multipartTttpSequest Multirequest = (MultipartpServletRequest) in Form (multipartresolver.ismultiPart (Anfrage)) vorhanden ist. // Alle Dateinamen in multirequest iterator iter = multirequest.getFileNames () abrufen; while (iter.hasnext ()) {// alle Dateien gleichzeitig multiPartFile -Datei = multirequest.getFile (iter.Next (). toString ()) transfuse; if (Datei! // Datei hochladen.transferto (neue Datei (Pfad)); }}} Long endzeit = System.currentTimemillis (); System.out.println ("Die Laufzeit von Methode drei:"+string.ValueOf (Endime-StartTime)+"MS"); zurück "/Erfolg"; }Werfen wir einen Blick auf die Test -Upload -Zeit:
Das erste Mal, dass ich eine 4M -Datei verwendet habe:
Dateiname: test.rar
Methode 1 Laufzeit: 14712 ms
Dateiname: test.rar
Methode 2 Laufzeit: 5 ms
Methode 3 Laufzeit: 4ms
Beim zweiten Mal: Ich verwende eine 50 -m -Datei
Der Fortschritt der Methode ist sehr langsam und dauert 5 Minuten.
Methode 2 Laufzeit: 67 ms
Methode 3 Laufzeit: 80 ms
Aus den Testergebnissen können wir feststellen, dass die Methode zum Hochladen von Dateien mit SpringMVC viel schneller ist!
Für das Ergebnis von Test 2: Es kann sein, dass die drei Methode nacheinander durchsucht werden muss, sodass sie langsamer sein sollte. Im Allgemeinen haben wir Methode 3, weil es uns mehr Methoden liefern kann
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.