การก่อสร้าง SpringMVC พื้นฐานถูกเขียนขึ้นในบทความก่อนหน้าของฉัน บทความนี้ส่วนใหญ่จะอธิบายวิธีการใช้ SpringMVC เพื่ออัปโหลดไฟล์ในแบบฟอร์มและอัปโหลดหลายไฟล์พร้อมกัน
ดาวน์โหลดซอร์สโค้ดของโครงการอัปโหลดไฟล์: ตัวอย่าง
1. ไฟล์กำหนดค่า:
SpringMVC ใช้ MultipArtFile เพื่ออัปโหลดไฟล์ดังนั้นเราต้องกำหนดค่า MultipartResolver ก่อนอื่น: สำหรับการประมวลผลไฟล์ในรูปแบบ
<!-กำหนดค่า MultipartResolver CommosMultipartResolver สำหรับการอัปโหลดไฟล์โดยใช้สปริง-> <ถั่ว: ถั่ว id = "MultipartResolver" P: DefaultEncoding = "UTF-8" P: MaxUploadSize = "5400000"
คุณลักษณะมีการอธิบายอย่างละเอียด:
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:
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 [] ไฟล์) {// ตัดสินอาร์เรย์ไฟล์ไม่สามารถว่างเปล่าได้ ไฟล์ [i]; // บันทึกไฟล์ savefile (ไฟล์); }} // Redirect return "Redirect: /list.html"; -ในที่สุดเรียกใช้โครงการเพื่ออัปโหลดไฟล์:
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น