Tiga cara untuk mengunggah file di springmvc, cukup unggah kode, Anda dapat mengetahui sekilas
Meja Depan:
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <! Doctype html public "-// w3c // dtd html 4.01 transisi // en" "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" content-type "content =" text/html; charset = UTF-8 "> <title> memasukkan judul di sini </title> </head </head; action = "/springmvc006/fileupload" method = "post" enctype = "multipart/form-data"> <h1> mengunggah file menggunakan streaming </h1> <input type = "file" name = "file"> <input type = "kirim" value = "unggah" // form form> <bentuk nama = "form2" form2 "/" value "/unggah"/ enctype = "multipart/form-data"> <h1> Mengunggah file menggunakan metode file.transfer yang disediakan oleh multipart </h1> <input type = "file" name = "file"> <input type = "kirim" value = "unggah"/> <form> <bentuk = "form2" Acti enctype = "multipart/form-data"> <h1> Unggah file menggunakan metode yang disediakan oleh spring mvc </h1> <input type = "file" name = "file"> <input type = "kirim" value = "unggah"/> </form> </body> </html>
Konfigurasi:
<!-Unggah file multipart-> <bean id = "multipartresolver"> <name properti = "maxuploadsize" value = "104857600" /> <name properti = "maxInmemorySize" value = "4096" /> <nama properti = "DonaSetencoding" value = "utf-8"> < /< /< /< /name Properti = "DEFADINCODING" Nilai = "Utf-8"> < /< /< /
Backstage:
Metode 1:
/* * Upload the file through stream* @RequestParam("file") Encapsulate the file obtained by the name=file control into CommonsMultipartFile object*/ @RequestMapping("fileUpload") public String fileUpload(@RequestParam("file") CommonsMultipartFile file) throws IOException { //Used to detect program run time long startTime = system.currentTimeMillis (); System.out.println ("FileName:"+File.GetoriginalFileName ()); coba {// dapatkan output stream outputStream os = new fileoutputStream ("e:/"+new date (). getTime ()+file.getoriginalFileName ()); // Dapatkan Input Stream CommonsMultipartFile untuk secara langsung mendapatkan inputStream aliran file adalah = file.getInputStream (); int temp; // Baca dan tulis byte satu per satu ke while ((temp = is.read ())! = (-1)) {os.write (temp); } os.flush (); os.close (); is.close (); } catch (FileNoTFoundException e) {// TODO Auto-Encoerated Catch Block E.PrintStackTrace (); } long endtime = system.currentTimeMillis (); System.out.println ("Jalankan waktu metode satu:"+string.valueof (endtime-starttime)+"ms"); mengembalikan "/kesuksesan"; }Metode 2:
/** Gunakan file.transto untuk menyimpan file yang diunggah*/ @RequestMapping ("Fileupload2") Public String Fileupload2 (@RequestParam ("File") File CommonsMultipartFile) melempar ioException {long starttime = System.currentTimeMillis (); System.out.println ("FileName:"+File.GetoriginalFileName ()); String path = "e:/"+new date (). GetTime ()+file.getoriginalFileName (); File newfile = file baru (path); // Tulis file secara langsung melalui metode CommonsMultipartFile (Catatan kali ini) file.transferto (newfile); Long Endtime = System.CurrentTimeMillis (); System.out.println ("Waktu berjalan dari metode dua:"+string.valueof (endtime-starttime)+"ms"); mengembalikan "/kesuksesan"; }Metode 3:
/**Gunakan metode mengunggah file yang disediakan oleh Spring*/ @RequestMapping ("Springupload") String Publik Springupload (permintaan httpservletRequest) melempar IllegalStateException, ioException {start waktu long = system.currentTimeMillis (); // Inisialisasi konteks saat ini ke CommonsMutipartresolver (Multipart Parser) CommonsMultiPartresolver multipartresolver = new CommonsMultipartresolver (request.getSession (). GetServletContext ()); // Periksa apakah ada enctype = "multipart/form-data" dalam bentuk if (multipartresolver.ismultipart (request)) {// Ubah permintaan ke permintaan multipart MultipartttpservletRequest multirequest = (multiparthttpservletrequest) permintaan; // Dapatkan semua nama file di multirequest iterator iter = multirequest.getFileNames (); while (iter.hasnext ()) {// mentransfer semua file sekaligus file multipartfile = multirequest.getFile (iter.next (). toString ()); if (file! = null) {string path = "e:/springupload"+file.getoriginalFileName (); // unggah file.transferto (file baru (path)); }}} Long endtime = System.currentTimeMillis (); System.out.println ("Waktu berjalan dari metode tiga:"+string.valueof (endtime-starttime)+"ms"); mengembalikan "/kesuksesan"; }Mari kita lihat waktu unggahan tes:
Pertama kali saya menggunakan file 4m:
Nama file: test.rar
Metode 1 Jalankan Waktu: 14712ms
Nama file: test.rar
Metode 2 Jalankan Waktu: 5ms
Metode 3 Jalankan Waktu: 4ms
Kali kedua: Saya menggunakan file 50m
Kemajuan metode ini sangat lambat, dan akan memakan waktu 5 menit.
Metode 2 Jalankan Waktu: 67ms
Metode 3 Jalankan Waktu: 80ms
Dari hasil tes, kita dapat melihat bahwa metode mengunggah file menggunakan SpringMVC jauh lebih cepat!
Untuk hasil tes 2: mungkin metode tiga harus dicari satu per satu, sehingga harus lebih lambat. Tetapi secara umum, kami memiliki metode 3 karena dapat memberi kami lebih banyak metode
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.