نصائح لطيفة
في نظام إدارة أعضاء SPRING BOOT ، من الضروري إشراك إطار Spring Framework و SPRINGMVC Framework و Hibernate Framework ومحرك قالب Thymeleaf. لذلك ، يمكنك تعلم هذه المعرفة. بالطبع ، لا بأس في استخدامه مباشرة إذا بدأت ، ولكن قد يكون الأمر صعبًا بعض الشيء إذا قمت بإشراك بعض الاستثناءات والمبادئ.
1. الجزء الأمامي
في الجزء الأمامي ، يقدم AddMember.html معلومات العضو من خلال نموذج النموذج ، والذي يتضمن وظيفة تحميل الصورة (تشارك عملية تحميل الملف). الرمز في جزء النموذج هو كما يلي:
<النموذج Th: Action = "@{/admin/addmmember}" method = "post" enctype = "multipart/form-data" id = "addmember"> <viv> <span> حدد avatar file </span> <input id = "file" type = <viv> <!-<input type = "text" placeholder = "تحميل واحد أو أكثر من الملفات">-> <img id = "myimg" src = "arcets/iconpath/common.jpg"/> </viv> <! } وظيفة changetoop () {var file = id ("file") ؛ if (file.value === '') {// قم بتعيين معرف الصورة الافتراضي ("myimg"). } آخر {preimg ("file" ، "myimg") ؛ }} // احصل على عنوان URL الخاص بـ INPUT [file] صورة مهمة getFileUrl (fileId) {var url ؛ var file = id (fileId) ؛ var Agent = navigator.useragent ؛ if (agent.indexof ("msie")> = 1) {url = file.value ؛ } آخر if (agent.indexof ("firefox")> 0) {url = window.url.createObjecturl (file.files.item (0)) ؛ } آخر if (agent.indexof ("chrome")> 0) {url = window.url.createObjecturl (file.files.item (0)) ؛ } URL Return ؛ } // وظيفة المعاينة بعد قراءة الصورة preimg (fileId ، imgid) {var imgpre = id (imgid) ؛ imgpre.src = getFileUrl (fileId) ؛ } </script> </viv> ......... </form> هناك ملاحظة هنا: لأنها تتضمن تحميل الملفات ، يجب إضافة enctype="multipart/form-data" إلى النموذج ، وتتوافق سمة الاسم في الإدخال مع اسم المعلمة الواردة لطريقة تعيين وحدة التحكم في الواجهة الخلفية.
2. تنفيذ رمز الخلفية
في الواجهة الخلفية ، يمكن لـ SpringMVC Framework معالجة الملفات ومن ثم يمكننا استلام الملفات عن طريق تمرير المعلمات.
2.1 وحدة التحكم تتعامل مع الملفات الواردة
الرمز كما يلي:
postmapping ("/addMember") السلسلة العامة AddMember (عضو عضو ، سلسلة GradEname ، أيقونة multipartfile ، خريطة <سلسلة ، كائن> طراز) {// معالجة الملف المحمّل تجرب {if (icon == null) // أولاً تحديد ما إذا كان الملف المحمّل هو عودة لاغية "خطأ" ؛ إذا كان (icon.getoriginalfilename (). يساوي ("")) // إذا كان الاسم الأصلي للملف الذي تم تحميله عبارة عن سلسلة فارغة ، فقد ثبت أن عضو الصورة الافتراضي. // قم بتعيين صورة Pathelse الافتراضية الخاصة بنا // هنا أقوم بمعالجة multipartfile المحمّلة عن طريق تمرير فئة أداة تحميل الملف التي كتبتها. تم تعيين اسم الملف على string member.seticonpath (fileUploAdutil.upload (أيقونة ، "/assets/icon/" ، uuidrandomutil.get32uuid ())) ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ إرجاع "خطأ" ؛ } ..... إرجاع "addMembersuccessess" ؛ }2.2 فئة أداة FileUploadUtil تحفظ الملفات
بعد تمرير ملف وحدة التحكم المتعددة في وحدة التحكم ، يجب تحويله إلى ملف وحفظه على القرص ، لذلك قمت بمعالجته بشكل منفصل وسلمت الملف الوارد لوحدة التحكم إلى فئة أداة FileUploadUtil للمعالجة. الرمز المحدد كما يلي:
fileuploadutil من الفئة العامة {/*** تحميل ملف* param multipartfile multipartfile* param prefixpath prefixpath ، بالنسبة إلى المسار في المشروع بأكمله ، ليست هناك حاجة لإضافة "/" في بداية المسار* stivents stivents stivation stival قم بتحميل السلسلة الثابتة العامة (multipartfile multipartfile ، prefixpath السلسلة ، اسم ملف السلسلة) يلقي استثناء {// الحصول على المسار المطلق exploadploodpath = classutils.getDefaultClasslader (). getResource (""). ملف الملف = ملف جديد (UploadPath) ؛ if (! file.exists ()) if (file.mkdirs ()) system.out.println ("دليل تم إنشاؤه بنجاح") ؛ // احصل على اسم FuckName = multipartfile.getoriginalfilename (). // إنشاء ملف ملف نهائي = ملف جديد (eploadpath+filename+faceixname) ؛ multipartfile.transferto (ملف) ؛ إرجاع premixpath+اسم الملف+اسم اللاحقة ؛ }} ClassUtils في ما سبق هو فئة أدوات توفرها الربيع ، ودعوة الطريقة getDefaultClassLoader().getResource("").getPath() هو الحصول على المسار تحت project classpath الحالي.
ما سبق جزء من المحتوى حول تحميل الملف في هذا النظام. تم تحميل الكود المصدري لهذا النظام إلى GitHub وتنزيل رمز المصدر.
لخص
ما سبق هو وظيفة تحميل الملف لنظام إدارة أعضاء SPRING Boot الذي قدمه لك المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!