dispatcherservlet จะต้องบอกอย่างชัดเจนถึงวิธีจัดการกับ multipartrequest
SpringMVC ให้วิธีการอัปโหลดไฟล์ต่อไปนี้
กำหนดค่า xxx-servlet.xml และเพิ่มรหัสต่อไปนี้:
การคัดลอกรหัสมีดังนี้:
<bean id = "Multipartresolver"
class = "org.springframework.web.multipart.Commons.CommonsMultipartResolver">
<!-ตั้งค่าขนาดสูงสุดของไฟล์ที่อัปโหลดเป็น 1MB->
<property name = "MaxUploadSize">
<value> 1048576 </alue>
</property>
</ebean>
การคัดลอกรหัสมีดังนี้:
<bean id = "Multipartresolver"
class = "org.springframework.web.multipart.Commons.CommonsMultipartResolver">
<!-ตั้งค่าขนาดสูงสุดของไฟล์ที่อัปโหลดเป็น 1MB->
<property name = "MaxUploadSize">
<value> 1048576 </alue>
</property>
</ebean>
โปรดทราบว่าขนาดไฟล์ที่นี่เป็นจริงเท่านั้นดังนั้นขนาดไฟล์ทั้งหมด
หากคุณกำหนดค่าขนาดไฟล์คุณคิดว่าคุณต้องกำหนดค่าการควบคุมข้อมูลข้อยกเว้น
ดังนั้นจึงจำเป็นต้องกำหนดค่าการแสดงผลที่ผิดปกติ
การคัดลอกรหัสมีดังนี้:
<!-เมื่อ SpringMVC เกินขีด จำกัด ของไฟล์อัปโหลดมันจะพ่น org.springframework.web.multipart.maxuploadseexeedexception->
<!-ข้อยกเว้นนี้ถูกโยนทิ้งโดย SpringMVC เมื่อตรวจสอบข้อมูลไฟล์ที่อัปโหลดและยังไม่ได้ป้อนวิธีคอนโทรลเลอร์ในเวลานี้->
<bean id = "ExceptionResolver"
-
<property name = "ExceptionMappings">
<อุปกรณ์ประกอบฉาก>
<!-เมื่อพบข้อยกเว้น MaxUploadSizeExceedEdExcept
<เสา
key = "org.springframework.web.multipart.maxuploadsizeExceedEdException"> error_fileupload </prop>
</props>
</property>
</ebean>
การคัดลอกรหัสมีดังนี้:
<!-เมื่อ SpringMVC เกินขีด จำกัด ของไฟล์อัปโหลดมันจะพ่น org.springframework.web.multipart.maxuploadseexeedexception->
<!-ข้อยกเว้นนี้ถูกโยนทิ้งโดย SpringMVC เมื่อตรวจสอบข้อมูลไฟล์ที่อัปโหลดและยังไม่ได้ป้อนวิธีคอนโทรลเลอร์ในเวลานี้->
<bean id = "ExceptionResolver"
-
<property name = "ExceptionMappings">
<อุปกรณ์ประกอบฉาก>
<!-เมื่อพบข้อยกเว้น MaxUploadSizeExceedEdExcept
<เสา
key = "org.springframework.web.multipart.maxuploadsizeExceedEdException"> error_fileupload </prop>
</props>
</property>
</ebean>
หรือขี้เกียจและไม่ตั้งค่าขนาดค่าเริ่มต้นสุดท้ายไม่ จำกัด หากคุณต้องควบคุมข้อมูลการส่งคืนคุณสามารถพิจารณาส่งคืนข้อมูลรูปแบบที่ระบุในการประมวลผลข้อยกเว้นเช่น JSON
หลังจากหน้าการกำหนดค่าเช่นเคยเพิ่มลงในแบบฟอร์ม: Enctype = "Multipart/Form-Data"
จากนั้นมีการดำเนินการที่ต้องดำเนินการ
วิธีแรก:
การคัดลอกรหัสมีดังนี้:
เข้าสู่ระบบสตริงสาธารณะ (ไฟล์ @requestparam MultipartFile รุ่นโมเดล) {
-
-
การคัดลอกรหัสมีดังนี้:
เข้าสู่ระบบสตริงสาธารณะ (ไฟล์ @requestparam MultipartFile รุ่นโมเดล) {
-
-
ชื่อของไฟล์จะต้องรับประกันว่าจะสอดคล้องกับค่าแอตทริบิวต์ใน <อินพุต type = file>
การคัดลอกรหัสมีดังนี้:
ล็อกอินสตริงสาธารณะ (@Valid userInfo userInfo, ผล bindingResult, @RequestParam MultipartFile [] ไฟล์, โมเดลโมเดล) {
-
-
การคัดลอกรหัสมีดังนี้:
ล็อกอินสตริงสาธารณะ (@Valid userInfo userInfo, ผล bindingResult, @RequestParam MultipartFile [] ไฟล์, โมเดลโมเดล) {
-
-
สามารถละเว้นไฟล์เดียว @RequestParam หลายไฟล์ไม่สามารถละเว้นได้
วิธีที่สอง:
การคัดลอกรหัสมีดังนี้:
Public ModelandView Handlerequest (คำขอ httpservletrequest,
การตอบสนอง httpservletResponse) โยนข้อยกเว้น {
// แปลงเป็น multiparthttprequest:
multiparthttpservletRequest multipartrequest = (multiparthttpservletRequest) คำขอ;
// รับไฟล์:
ไฟล์ multipartFile = multipartrequest.getFile ("ไฟล์");
-
การคัดลอกรหัสมีดังนี้:
Public ModelandView Handlerequest (คำขอ httpservletrequest,
การตอบสนอง httpservletResponse) โยนข้อยกเว้น {
// แปลงเป็น multiparthttprequest:
multiparthttpservletRequest multipartrequest = (multiparthttpservletRequest) คำขอ;
// รับไฟล์:
ไฟล์ multipartFile = multipartrequest.getFile ("ไฟล์");
-
วิธีนี้คุณสามารถรับไฟล์ได้
อันที่จริงการกำหนดค่าแรกคือการเพิ่มแพ็คเกจขวดสองแพ็คเกจ:
Commons-FileUpload-1.2.2.jar
Commons-io-2.1.jar