บทความนี้แชร์รหัสเฉพาะสำหรับการอัปโหลดไฟล์ Spring Boot สำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
1. สร้างโครงการเว็บ Maven จากนั้นกำหนดค่าไฟล์ pom.xml และเพิ่มการอ้างอิง:
<การพึ่งพา> <roupId> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Starter-Web </artifactid> <version> 1.0.2.Release </เวอร์ชัน>
2. ป้อนแบบฟอร์มในไฟล์ index.jsp ในไดเรกทอรี WebApp:
<html> <body> <form method = "post" enctype = "multipart /form-data" action = " /upload"> ไฟล์เพื่ออัปโหลด: <อินพุต type = "file" name = "ไฟล์"> <br /> name: <อินพุตประเภท = "text" name = "ชื่อ"> <br /> <br /> < </form> </body>
แบบฟอร์มนี้เป็นหน้าอัปโหลดแบบจำลองของเรา
3. เขียนคอนโทรลเลอร์ที่ประมวลผลแบบฟอร์มนี้:
นำเข้า Java.io.BufferedOutputStream; นำเข้า Java.io.File; นำเข้า Java.io.FileOutputStream; นำเข้า org.springframework.stereotype.controller; นำเข้า org.springframework.web.bind.annotation.requestmapping; นำเข้า org.springframework.web.bind.annotation.requestmethod; นำเข้า org.springframework.web.bind.annotation.requestparam; นำเข้า org.springframework.web.bind.annotation.responsebody; นำเข้า org.springframework.web.multipart.multipartfile; @Controller คลาสสาธารณะคลาส FilePloadController {@requestMapping (value = "/upload", method = requestMethod.get) สาธารณะ @ResponseBody String proviewploadInfo () {return "คุณสามารถอัปโหลดไฟล์ได้โดยโพสต์ไปยัง URL เดียวกันนี้"; } @RequestMapping (value = "/upload", method = requestMethod.post) สาธารณะ @ResponseBody สตริง HandleFileUpload (@RequestParam ("ชื่อ") ชื่อสตริง @RequestParam ("ไฟล์") ไฟล์ MultipartFile) bufferedOutputStream stream = ใหม่ bufferedOutputStream (ใหม่ fileOutputStream (ไฟล์ใหม่ (ชื่อ + "-uploaded"))); Stream.write (ไบต์); Stream.close (); ส่งคืน "คุณอัปโหลดสำเร็จ" + ชื่อ + "เข้าสู่" + ชื่อ + "-อัปโหลด!"; } catch (Exception e) {return "คุณไม่สามารถอัปโหลด" + name + "=>" + e.getMessage (); }} else {return "คุณไม่สามารถอัปโหลด" + ชื่อ + "เพราะไฟล์ว่างเปล่า"; -4. จากนั้นเรามีข้อ จำกัด บางประการเกี่ยวกับไฟล์ที่อัปโหลดและเขียนวิธีหลักเพื่อเริ่มต้นเว็บ:
นำเข้า org.springframework.boot.springapplication; นำเข้า org.springframework.boot.autoconfigure.enableautoconfiguration; นำเข้า org.springframework.boot.context.embedded.multipartConfigFactory; นำเข้า org.springframework.context.annotation.bean; นำเข้า org.springframework.context.annotation.componentscan; นำเข้า org.springframework.context.annotation.configuration; นำเข้า Javax.servlet.MultipartConfigelement; @configuration @componentscan @enableautoconfiguration แอปพลิเคชันคลาสสาธารณะ {@bean Public Public MultipartConfigelement MultipartConfigelement () {MultipartConfigFactory โรงงาน = ใหม่ MultipArtConfigFactory (); Factory.SetMaxFilesize ("128KB"); Factory.SetMaxRequestSize ("128KB"); Return Factory.CreateMultipartConfig (); } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {springapplication.run (application.class, args); -5. จากนั้นเยี่ยมชม http: // localhost: 8080/อัปโหลดเพื่อดูหน้า
ตัวอย่างข้างต้นใช้ฟังก์ชั่นของการอัปโหลดไฟล์เดียว สมมติว่าเราต้องการใช้ฟังก์ชั่นของการอัปโหลดแบทช์ของไฟล์ตอนนี้เราจำเป็นต้องแก้ไขรหัสด้านบน เมื่อพิจารณาถึงปัญหาความยาวต่อไปนี้เป็นเพียงรหัสที่แตกต่างจากด้านบนและคำอธิบายจะไม่ถูกโพสต์ดังกล่าวข้างต้น -
1. เพิ่มไฟล์ batchupload.jsp
<html> <body> <form method = "post" enctype = "multipart/form-data" action = "/batch/upload"> ไฟล์เพื่ออัปโหลด: <อินพุต type = "file" name = "ไฟล์"> <br/> ไฟล์เพื่ออัปโหลด: </form> </body> </html>
2. เพิ่มไฟล์ batchFileUploadController.java:
นำเข้า org.springframework.steretype.controller; นำเข้า org.springframework.web.bind.annotation.requestmapping; นำเข้า org.springframework.web.bind.annotation.requestmethod; นำเข้า org.springframework.web.bind.annotation.responsebody; นำเข้า org.springframework.web.multipart.multipartfile; นำเข้า org.springframework.web.multipart.multiparthttpservletrequest; นำเข้า Javax.servlet.http.httpservletRequest; นำเข้า Java.io.BufferedOutputStream; นำเข้า Java.io.File; นำเข้า Java.io.FileOutputStream; นำเข้า java.util.list; /*** สร้างโดย Wenchao.ren เมื่อปี 2014/4/26 */@Controller คลาสสาธารณะ BatchFileUploadController {@requestMapping (value = "/batch/upload", method = requestMethod.post) สาธารณะ @ResponseBody String HandleFilePilePload (HTTPSERVLETREQUEST) สำหรับ (int i = 0; i <files.size (); ++ i) {multipartFile file = files.get (i); ชื่อสตริง = file.getName (); if (! file.isempty ()) {ลอง {byte [] bytes = file.getBytes (); bufferedOutputStream stream = ใหม่ bufferedOutputStream (ใหม่ fileOutputStream (ไฟล์ใหม่ (ชื่อ + i))); Stream.write (ไบต์); Stream.close (); } catch (Exception e) {return "คุณไม่สามารถอัปโหลด" + name + "=>" + e.getMessage (); }} else {return "คุณไม่สามารถอัปโหลด" + ชื่อ + "เพราะไฟล์ว่างเปล่า"; }} ส่งคืน "อัปโหลดสำเร็จ"; -ฟังก์ชั่นการอัปโหลดแบทช์แบบง่าย ๆ นั้นโอเคมันไม่ง่ายมากเหรอ?
หมายเหตุ: รหัสข้างต้นมีไว้สำหรับการสาธิตดังนั้นรูปแบบการเข้ารหัสจึงใช้วิธีการแบบไม่เป็นทางการและไม่แนะนำให้ทุกคนเลียนแบบ
การอ้างอิง: MultipartResolver ใช้ฟังก์ชันการอัปโหลดไฟล์
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น
1. MultipartResolver ยังสามารถใช้ฟังก์ชันการอัปโหลดไฟล์ บทความอ้างอิง: