ตัวอย่างนี้แชร์รหัสเฉพาะของ SpringMVC โดยใช้ MultipartFile เพื่อใช้การอัปโหลดไฟล์สำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
1. ไฟล์กำหนดค่า
SpringMVC ใช้ MultipArtFile เพื่ออัปโหลดไฟล์ดังนั้นเราต้องกำหนดค่า MultipartResolver ก่อนอื่น: สำหรับการประมวลผลไฟล์ในรูปแบบ
<!-กำหนดค่า MultipartResolver CommosMultipartResolver สำหรับการอัปโหลดไฟล์โดยใช้สปริง-> <ถั่ว: ถั่ว id = "MultipartResolver" P: DefaultEncoding = "UTF-8" P: MaxUploadSize = "5400000"
คุณลักษณะมีการอธิบายอย่างละเอียด:
DefaultEncoding = "UTF-8" เป็นรูปแบบการเข้ารหัสที่ร้องขอ, ค่าเริ่มต้น ISO-8859-1
MaxUploadSize = "5400000" คือขนาดของไฟล์ที่อัปโหลดในไบต์
uploadTempDir = "fileUpload/temp" เป็นพา ธ ชั่วคราวเพื่ออัปโหลดไฟล์
2. สร้างแบบฟอร์มอัปโหลดอย่างง่าย
<body> <h2> อินสแตนซ์การอัปโหลดไฟล์ </h2> <form action = "fileupload.html" method = "post" enctype = "multipart/form-data"> เลือกไฟล์: <อินพุต type = "file" name = "ไฟล์">
โปรดทราบว่าคุณควรเพิ่ม Enctype = "Multipart/Form-Data" ลงในแท็กฟอร์มเพื่อระบุว่ารูปแบบจำเป็นต้องประมวลผลไฟล์ นี่คือสิ่งพื้นฐานที่สุด หลายคนจะลืมข้อผิดพลาดในการค้นหาโปรแกรมหลังจากเกิดข้อผิดพลาดในการอัปโหลด แต่ลืมประเด็นนี้
3. คลาสการควบคุมอัปโหลดคลาสควบคุม
1. สร้างคลาสควบคุม: fileUploadController และหน้าเว็บที่ส่งคืนรายการผลลัพธ์ jsp
2. เขียนการกระทำเพื่อส่งแบบฟอร์ม
// รับคำขอการกำหนดค่าเริ่มต้นของสปริงผ่านคำอธิบายประกอบ AutoWired ของ Spring @autowired ส่วนตัว httpservletrequest คำขอ; / *** * อัปโหลดไฟล์ด้วยคำอธิบายประกอบ @RequestParam เพื่อระบุว่าไฟล์ในแบบฟอร์มเป็น multipartFile * * @param ไฟล์ * @return */ @requestmapping ("fileupload") สตริงสาธารณะ fileupload (@requestparam ("ไฟล์" filepath = request.getSession (). getServletContext (). getRealPath ("/") + "อัปโหลด/" + file.getoriginalfilename (); // transferto (ไฟล์ใหม่ (FilePath)); } catch (exception e) {e.printstacktrace (); }} // Redirect return "Redirect: /list.html"; }/*** * อ่านไฟล์ทั้งหมดในไฟล์ที่อัปโหลดและส่งคืน * * @return */@requestmapping ("รายการ") รายการสาธารณะและรายการ () {String filepath = request.getSession (). getServletContext (). getRealPath ("/") + "อัปโหลด/"; ModelAndView mav = new ModelandView ("list"); ไฟล์ uploaddest = ไฟล์ใหม่ (filePath); สตริง [] fileenames = uploaddest.list (); สำหรับ (int i = 0; i <filenames.length; i ++) {// พิมพ์ชื่อไฟล์ System.out.println (ชื่อไฟล์ [i]); } return mav; - 3. ใช้คำอธิบายประกอบ SpringMVC requestparam เพื่อระบุพารามิเตอร์ไฟล์ในแบบฟอร์ม
4. ระบุเส้นทางโครงการเว็บเพื่อบันทึกไฟล์
5. วิธีการ TRANSVERTO (ไฟล์ DEST) ของ MultipArtFile ไปยังเส้นทางที่ระบุ
ณ จุดนี้การอัปโหลดไฟล์พื้นฐานสิ้นสุดลง
วิธีการที่ใช้กันทั่วไปบางวิธีของคลาส MultipartFile:
String getContentType () // รับไฟล์ประเภท MIME ไฟล์
InputStream getInputStream () // จากนั้นไปที่การสตรีมไฟล์
String getName () // รับชื่อของส่วนประกอบไฟล์ในแบบฟอร์ม
สตริง getoriginalfilename () // รับชื่อเดิมของไฟล์ที่อัปโหลด
ยาว () // รับขนาดไบต์ของไฟล์หน่วยไบต์
บูลีน isempty () // มันว่างเปล่า
เป็นโมฆะ TransferTo (ไฟล์ DEST) // บันทึกไปยังไฟล์เป้าหมาย
4. อัปโหลดไฟล์หลายไฟล์
การอัปโหลดหลายไฟล์นั้นง่ายมาก เช่นเดียวกับการอัปโหลดพารามิเตอร์เดียวกันอื่น ๆ เช่นช่องทำเครื่องหมายใช้ชื่อเดียวกันในแบบฟอร์มจากนั้นกำหนดคลาสพารามิเตอร์ MultipartFile เป็นอาร์เรย์ในการดำเนินการ
ดำเนินการต่อไป:
1. สร้างแบบฟอร์มที่อัปโหลดหลายไฟล์:
<body> <h2> อัปโหลดอินสแตนซ์ไฟล์หลายไฟล์ </h2> <form action = "filesupload.html" method = "post" enctype = "multipart/form-data"> <p> เลือกไฟล์: <อินพุต type = "file" file = "ไฟล์" type = "ส่ง" value = "ส่ง"> </form> </body>
2. เขียนการดำเนินการเพื่อประมวลผลแบบฟอร์มและเขียนวิธีการแยกต่างหากเพื่อบันทึกไฟล์เพื่ออำนวยความสะดวกในการแบ่งปัน:
/**** บันทึกไฟล์* ไฟล์ @param* @return*/บูลีนส่วนตัว savefile (ไฟล์ multipartFile) {// กำหนดว่าไฟล์นั้นว่างเปล่าหรือไม่ถ้า (! file.isempty ()) {ลอง {// ไฟล์บันทึกพา ธ filepath = request.getSession (). getServletContext () // transferto (ไฟล์ใหม่ (FilePath)); กลับมาจริง; } catch (exception e) {e.printstacktrace (); }} return false; } 3. การเขียนการกระทำ: @RequestMapping ("filesUpload") สตริงสาธารณะ filesupload (@requestparam ("ไฟล์") ไฟล์ multipartFile []) {// ตัดสินอาร์เรย์ไฟล์ไม่สามารถว่างเปล่า ไฟล์ multipartFile = ไฟล์ [i]; // บันทึกไฟล์ savefile (ไฟล์); }} // Redirect return "Redirect: /list.html"; -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น