จะอัปโหลดหลายไฟล์ไปยังตำแหน่งเฉพาะโดยใช้ Spring MVC ได้อย่างไร จบการสอนด้วยโค้ด Java

เผยแพร่แล้ว: 2013-06-22

นี่เป็นอีกหนึ่งบทช่วยสอน Spring MVC ที่สมบูรณ์ซึ่งยอมรับไฟล์ใน แบบฟอร์มอัปโหลด และคัดลอกไปยังโฟลเดอร์เฉพาะในเหตุการณ์ "ส่ง" ตามปกติแล้ว เรามีการ dependency ตัวอย่าง MVC ของ Hello World Spring

ดังนั้น นี่คือส่วนเพิ่มเติม/การเปลี่ยนแปลงที่เราต้องทำในตัวอย่างนี้:

  • ไฟล์ใหม่: CrunchifyFileUploadController.java
  • ไฟล์ใหม่: CrunchifyFileUpload.java
  • ไฟล์ใหม่: uploadfile.jsp
  • ไฟล์ใหม่: uploadfilesuccess.jsp
  • ไฟล์ที่ถูกแก้ไข: crunchify-servlet.xml
  • ไฟล์ jar ใหม่ 2 ไฟล์: commons-io-2.4.jar และ commons-fileupload-1.3.jar

มีคำถามด้านล่างหรือไม่? ถ้าอย่างนั้นคุณก็มาถูกที่แล้ว

  • ตัวอย่างการอัปโหลดไฟล์ Java หลายไฟล์
  • อัปโหลดหลายไฟล์หรือหลายโฟลเดอร์

นี่คือโครงสร้างโปรเจ็กต์ขั้นสุดท้าย คุณจะได้ทราบแนวคิดเกี่ยวกับตำแหน่งที่จะเพิ่มไฟล์

บทแนะนำการอัปโหลดไฟล์ Spring MVC โดย Crunchify

มาเริ่มกันเลย:

ขั้นตอนที่ 1)) ข้อกำหนดเบื้องต้น:

https://crunchify.com/hello-world-example-spring-mvc-3-2-1/ (ทำให้โครงการนี้ใช้งานได้สำเร็จบน Tomcat)

การพึ่งพา Maven:

เพิ่มการพึ่งพาใหม่ด้านล่างให้กับไฟล์ pom.xml ของโปรเจ็กต์ของคุณ

ขั้นตอนที่ 2) SpringController

สร้างตัวควบคุมที่ใช้ Spring 3 MVC ซึ่งจัดการการอัปโหลดไฟล์ มีสองวิธีในตัวควบคุมนี้:

  1. crunchifyDisplayForm – เพียงแค่ส่งต่อคำขอไปยัง pageuploadfile.jsp
  2. crunchifySave – ดึงแบบฟอร์มโดยใช้คำอธิบายประกอบ @ModelAttribute และรับเนื้อหาไฟล์จากมัน จะสร้างรายการชื่อไฟล์ของไฟล์ที่กำลังอัปโหลดและส่งรายการนี้ไปยังหน้าความสำเร็จ

ขั้นตอนที่ 3) โมเดล – วัตถุแบบฟอร์ม

สร้าง Java bean ซึ่งทำหน้าที่เป็นวัตถุ Model/Form สำหรับแอปพลิเคชัน Spring ของเรา bean นี้มี List ของอ็อบเจ็กต์ org.springframework.web.multipart.MultipartFile เฟรมเวิร์ก Spring จัดเตรียมคลาส MultipartFile ที่มีประโยชน์ซึ่งสามารถใช้เพื่อดึงเนื้อหาไฟล์ของไฟล์ที่อัพโหลด นอกเหนือจากเนื้อหาแล้ว วัตถุ MultipartFile ยังให้ข้อมูลที่เป็นประโยชน์อื่นๆ แก่คุณ เช่น ชื่อไฟล์ ขนาดไฟล์ เป็นต้น

ขั้นตอนที่ 4) JSP Views

ตอนนี้สร้างหน้าดูสำหรับแอปพลิเคชันนี้ เราจำเป็นต้องมี JSP สองตัว ตัวหนึ่งสำหรับแสดงแบบฟอร์มการอัพโหลดไฟล์ และอีกตัวสำหรับแสดงผลการอัพโหลดที่สำเร็จ

uploadfile.jsp แสดงแบบฟอร์มพร้อมไฟล์อินพุต นอกจากนี้ เราได้เพิ่มข้อมูลโค้ด jquery ขนาดเล็กเมื่อคลิกปุ่มเพิ่ม สิ่งนี้จะเพิ่มองค์ประกอบอินพุตไฟล์ใหม่ที่ส่วนท้ายของแบบฟอร์ม ซึ่งช่วยให้ผู้ใช้สามารถอัปโหลดไฟล์ได้มากเท่าที่ต้องการ

โปรดทราบว่าเราได้ตั้งค่าแอตทริบิวต์ enctype=”multipart/form-data” ของแท็ก <form>

ขั้นตอนที่-5) อัปเดตการกำหนดค่าสปริง

เพิ่ม bean ด้านล่างเพื่อ crunchify-servlet.xml ไฟล์ เหนือบรรทัด <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">

ขั้นตอนที่ 6) ผลการเช็คเอาต์

เริ่ม tomcat และชี้เบราว์เซอร์ของคุณไปที่ URL นี้: http://localhost:8080/CrunchifySpringMVC3.2.1/upload.html และคุณควรเห็นหน้าจอที่คล้ายกันนี้

Crunchify Spring MVC - ตัวอย่างการอัปโหลดไฟล์หลายไฟล์

หลังจากอัพโหลดไฟล์แล้ว คุณจะเห็นข้อความแสดงความสำเร็จเช่นนี้ คุณสามารถตกแต่งไฟล์ .jsp ได้ตามที่คุณต้องการ

Crunchify Spring MVC - การอัปโหลดไฟล์หลายไฟล์ ตัวอย่างผลลัพธ์

รายการตัวอย่าง Spring MVC ทั้งหมด ตัวอย่าง Java