เคล็ดลับชนิด
ในระบบการจัดการสมาชิก Spring Boot มีความจำเป็นที่จะต้องเกี่ยวข้องกับ Framework Spring, SpringMVC Framework, Hibernate Framework และเครื่องยนต์เทมเพลต Thymeleaf ดังนั้นคุณสามารถเรียนรู้ความรู้นี้ได้ แน่นอนว่ามันไม่เป็นไรที่จะใช้โดยตรงถ้าคุณเริ่มต้น แต่อาจเป็นเรื่องยากถ้าคุณมีข้อยกเว้นและหลักการบางอย่าง
1. ส่วนหน้า
ในส่วน front-end addmember.html ส่งข้อมูลสมาชิกผ่านแบบฟอร์มแบบฟอร์มซึ่งรวมถึงฟังก์ชั่นการอัปโหลดรูปภาพ (เกี่ยวข้องกับการอัพโหลดไฟล์) รหัสในส่วนฟอร์มมีดังนี้:
<ฟอร์ม th: action = "@{/admin/addMember}" method = "post" enctype = "multipart/form-data" id = "addMember"> <par> <pan> <span> เลือกไฟล์ Avatar </span> <อินพุต id = "ไฟล์" ไฟล์ "ไฟล์" </div> <div> <!-<อินพุต type = "text" placeholder = "อัปโหลดหนึ่งไฟล์หรือมากกว่าหนึ่งไฟล์">-> <img id = "myimg" src = "สินทรัพย์/ไอคอน/common.jpg"/> </div> <! } function changetoop () {var file = id ("ไฟล์"); if (file.value === '') {// ตั้งค่ารหัสรูปภาพเริ่มต้น ("myimg"). src = 'สินทรัพย์/iconpath/common.jpg'; } else {preimg ("ไฟล์", "myimg"); }} // รับ URL ของอินพุต [ไฟล์] ภาพที่สำคัญฟังก์ชั่น getFileUrl (fileId) {var url; var file = id (fileid); var agent = navigator.useragent; if (agent.indexof ("msie")> = 1) {url = file.value; } อื่นถ้า (agent.indexof ("firefox")> 0) {url = window.url.createObjecturl (file.files.item (0)); } อื่นถ้า (agent.indexof ("chrome")> 0) {url = window.url.createObjecturl (file.files.item (0)); } return url; } // ฟังก์ชั่นดูตัวอย่างหลังจากอ่าน preimg รูปภาพ (fileid, imgid) {var imgpre = id (imgid); imgpre.src = getFileUrl (fileid); } </script> </div> ......... </form> มีหมายเหตุที่นี่: เนื่องจากเกี่ยวข้องกับการอัปโหลดไฟล์ enctype="multipart/form-data" จะต้องถูกเพิ่มลงในแบบฟอร์มและแอตทริบิวต์ชื่อในอินพุตสอดคล้องกับชื่อพารามิเตอร์ที่เข้ามาของวิธีการแมปคอนโทรลเลอร์ในแบ็กเอนด์
2. การใช้งานรหัสแบ็กเอนด์
ในแบ็กเอนด์เฟรมเวิร์ก SpringMVC สามารถประมวลผลไฟล์ได้จากนั้นเราสามารถรับไฟล์ได้โดยผ่านพารามิเตอร์
2.1 คอนโทรลเลอร์จัดการไฟล์ที่เข้ามา
รหัสมีดังนี้:
@PostMapping ("/addMember") สตริงสาธารณะ addMember (สมาชิก, ชื่อสตริง GradEname, ไอคอน MultipartFile, แผนที่ <สตริง, วัตถุ> รุ่น) {// การประมวลผลไฟล์ที่อัปโหลดลองลอง {ถ้า (icon == null) // ก่อนกำหนดว่าไฟล์ที่อัปโหลดกลับมา if (icon.getoriginalfilename (). Equals ("")) // ถ้าชื่อเดิมของไฟล์ที่อัปโหลดเป็นสตริงที่ว่างเปล่าจะได้รับการพิสูจน์แล้วว่าสมาชิกภาพเริ่มต้น SeticOnPath ("/สินทรัพย์/ไอคอน/Common.jpg"); // ตั้งค่าเป็น pathelse รูปภาพเริ่มต้นของเรา // ที่นี่ฉันประมวลผล multipartfile ที่อัปโหลดโดยผ่านคลาสเครื่องมืออัปโหลดไฟล์ที่ฉันเขียน ชื่อไฟล์ถูกตั้งค่าเป็น member.seticonpath (fileuploadutil.upload (ไอคอน, "/สินทรัพย์/ไอคอน/", uuidrandomutil.get32uuid ())); } catch (exception e) {e.printstacktrace (); ส่งคืน "ข้อผิดพลาด"; } ..... return "AddMembersuccess"; -2.2 คลาสเครื่องมือ FileUploadUtil บันทึกไฟล์
หลังจากผ่านไฟล์ multipartFile ของคอนโทรลเลอร์แล้วจะต้องมีการแปลงเป็นไฟล์และบันทึกลงในดิสก์ต่อไปดังนั้นฉันจึงประมวลผลแยกต่างหากและส่งไฟล์ขาเข้าของคอนโทรลเลอร์ไปยังคลาสเครื่องมือ FilePloadutil สำหรับการประมวลผล รหัสเฉพาะมีดังนี้:
public class fileuploadutil { /*** อัปโหลดไฟล์* @param MultipartFile MultipartFile* @param PrefixPath PrefixPath เทียบกับเส้นทางในโครงการทั้งหมดไม่จำเป็นต้องเพิ่ม " /" ที่จุดเริ่มต้นของเส้นทาง* @param ข้อยกเว้น*/การอัปโหลดสตริงแบบคงที่สาธารณะ (MultipartFile MultipartFile, String PrefixPath, String filename) พ่นข้อยกเว้น {// รับเส้นทางที่สมบูรณ์แบบอัปโหลดสตริง uploadPath = classutils.getDefaultClassloader () getResource ("") ไฟล์ไฟล์ = ไฟล์ใหม่ (UploadPath); if (! file.exists ()) ถ้า (file.mkdirs ()) system.out.println ("สร้างไดเรกทอรีสำเร็จ"); // รับ suffixName ที่อัปโหลด = multipartfile.getoriginalfilename (). substring (multipartfile.getoriginalfilename (). lastindexof (".")); // สร้างไฟล์ไฟล์สุดท้าย = ไฟล์ใหม่ (uploadPath+fileName+suffixName); MultipartFile.transferto (ไฟล์); ส่งคืน prefixpath+ชื่อไฟล์+affixName; - ClassUtils ในด้านบนเป็นคลาสเครื่องมือที่จัดทำโดยฤดูใบไม้ผลิและเรียกวิธีการ getDefaultClassLoader().getResource("").getPath() คือการได้รับเส้นทางภายใต้โครงการปัจจุบัน
ข้างต้นเป็นส่วนหนึ่งของเนื้อหาเกี่ยวกับการอัปโหลดไฟล์ในระบบนี้ ซอร์สโค้ดของระบบนี้ถูกอัปโหลดไปยัง GitHub และดาวน์โหลดซอร์สโค้ด
สรุป
ด้านบนเป็นฟังก์ชั่นการอัปโหลดไฟล์ของระบบการจัดการสมาชิก Spring Boot ที่แนะนำโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!