DispatcherServlet harus secara eksplisit diberitahu bagaimana menangani multipartrequest.
SpringMVC memberikan cara berikut untuk mengunggah file
Konfigurasikan xxx-servlet.xml dan tambahkan kode berikut:
Salinan kode adalah sebagai berikut:
<bean id = "multipartresolver"
class = "org.springframework.web.multipart.commons.Commonsmultipartresolver">
<!-Atur ukuran maksimum file yang diunggah ke 1MB->
<name properti = "MAXUPLOADSIZE">
<value> 1048576 </value>
</propt>
</tagel>
Salinan kode adalah sebagai berikut:
<bean id = "multipartresolver"
class = "org.springframework.web.multipart.commons.Commonsmultipartresolver">
<!-Atur ukuran maksimum file yang diunggah ke 1MB->
<name properti = "MAXUPLOADSIZE">
<value> 1048576 </value>
</propt>
</tagel>
Perhatikan bahwa ukuran file di sini sebenarnya hanya jadi ukuran file total
Jika Anda mengonfigurasi ukuran file, Anda pikir Anda perlu mengkonfigurasi kontrol informasi pengecualian
Oleh karena itu, perlu untuk mengkonfigurasi tampilan abnormal
Salinan kode adalah sebagai berikut:
<!-Saat springmvc melebihi batas file unggah, ia melempar org.springframework.web.multipart.maxuploadsizeExededException->
<!-Pengecualian ini dilemparkan oleh SpringMVC saat memeriksa informasi file yang diunggah, dan belum memasukkan metode pengontrol saat ini->
<bean id = "ExceptionResolver"
>
<nama properti = "ExceptionMappings">
<sops>
<!-Saat menemukan pengecualian MaxuploadsizeExedededException, itu akan secara otomatis melompat ke /web-inf/jsp/error_fileupload.jsp halaman->
<prop
key = "org.springframework.web.multipart.maxuploadsizeExededException"> error_fileupload </prop>
</sops>
</propt>
</tagel>
Salinan kode adalah sebagai berikut:
<!-Saat springmvc melebihi batas file unggah, ia melempar org.springframework.web.multipart.maxuploadsizeExededException->
<!-Pengecualian ini dilemparkan oleh SpringMVC saat memeriksa informasi file yang diunggah, dan belum memasukkan metode pengontrol saat ini->
<bean id = "ExceptionResolver"
>
<nama properti = "ExceptionMappings">
<sops>
<!-Saat menemukan pengecualian MaxuploadsizeExedededException, itu akan secara otomatis melompat ke /web-inf/jsp/error_fileupload.jsp halaman->
<prop
key = "org.springframework.web.multipart.maxuploadsizeExededException"> error_fileupload </prop>
</sops>
</propt>
</tagel>
Atau malas dan jangan mengatur ukurannya, nilai default akhir tidak terbatas. Jika Anda harus mengontrol informasi pengembalian, Anda dapat mempertimbangkan untuk mengembalikan data format yang ditentukan dalam pemrosesan pengecualian, seperti JSON
Setelah halaman konfigurasi, seperti biasa, tambahkan ke bentuk formulir: enctype = "multipart/form-data"
Lalu ada tindakan yang perlu diproses.
Metode pertama:
Salinan kode adalah sebagai berikut:
Login string publik (file multipartfile @RequestParam, model model) {
……………………
}
Salinan kode adalah sebagai berikut:
Login string publik (file multipartfile @RequestParam, model model) {
……………………
}
Nama file harus dijamin konsisten dengan nilai atribut di <input type = file>.
Salinan kode adalah sebagai berikut:
Login String Publik (@Valid UserInfo UserInfo, Hasil BINDINGRESULT, file @RequestParam multipartfile [], model model) {
……………………
}
Salinan kode adalah sebagai berikut:
Login String Publik (@Valid UserInfo UserInfo, Hasil BINDINGRESULT, file @RequestParam multipartfile [], model model) {
……………………
}
File tunggal dapat dihilangkan @RequestParam beberapa file tidak dapat dihilangkan
Metode kedua:
Salinan kode adalah sebagai berikut:
Public ModelAndView HandLerequest (permintaan httpservletrequest,
HttpservletResponse response) melempar pengecualian {
// Transformasi ke MultiparthttPr REQUEST:
MultiparthttpservletRequest MultipARTRequest = (MultiparthttpServletRequest) Permintaan;
// Dapatkan file:
File multipartfile = multipartrequest.getFile ("file");
}
Salinan kode adalah sebagai berikut:
Public ModelAndView HandLerequest (permintaan httpservletrequest,
HttpservletResponse response) melempar pengecualian {
// Transformasi ke MultiparthttPr REQUEST:
MultiparthttpservletRequest MultipARTRequest = (MultiparthttpServletRequest) Permintaan;
// Dapatkan file:
File multipartfile = multipartrequest.getFile ("file");
}
Dengan cara ini Anda juga bisa mendapatkan file
Bahkan, konfigurasi pertama adalah menambahkan dua paket toples:
Commons-Fileupload-1.2.2.jar
commons-io-2.1.jar