يعد تحميل الملفات أحد السيناريوهات الشائعة على الإنترنت. الموقف الأكثر نموذجية هو تحميل الصورة الرمزية ، وما إلى ذلك اليوم ، سوف آخذك للقيام بحالة صغيرة من تحميل الملفات في SPRING BOOT.
1. تكوين حزمة POM
نستخدم أحدث إصدار من Spring Boot 1.5.9 ، يستخدم JDK 1.8 ، Tomcat8.0.
<Arnal> <roupiD> org.springframework.boot </rougiD> <intifactid> Spring-boot-starter-parent </shifaCtId> <sored> 1.5.9 <roughid> org.springframework.boot </rougiD> <StifactId> Spring-boot-starter-web </stifactid> </premited> <reperence> <roupiD> org.springframework.boot </rougiD> <roupl> org.springframework.boot </groupId> <StifactId> spring-boot-devtools </artifactid> <peciptional> true </perical> </reperence> </reperence>
يتم تقديم Spring-Boot-Starter-Thymeleaf كمحرك قالب الصفحة واكتب بعض أمثلة التحميل البسيطة.
2. إعدادات فئة بدء التشغيل
springbootapplicationpublicpublic class fileuploadwebapplication {public static void main (string [] args) rems {springapplication.run (fileuploadwebapplication.class ، args) ؛ }. Tomcat.AddConnectorCustomizers ((TomCatConnectorCustomizer) موصل -> {if ((connector.getProtocolhandler () مثيل Abstracthttp11protocol <؟ Connector.getProtocolhandler ()). إرجاع Tomcat. }}رمز TomCateMbedded هو حل مشكلة إعادة ضبط الاتصال عند تحميل الملفات التي يزيد عن 10 أمتار. لا يتم التقاط محتوى الاستثناء هذا أيضًا بواسطة GlobalException.
مرجع المحتوى التفصيلي: إعادة تعيين توصيل ملفات ملفات Tomcat
3. اكتب صفحة أمامية
صفحة التحميل
<! doctype html> <html xmlns: th = "http://www.thymeleaf.org"> <body> <h1> قم بتحميل ملف التمهيد الربيعي مثال </h1> <five method = "post" action = "/upload" enctype = "multipart/form data" اكتب = "إرسال" value = "إرسال"/> </form> </body> </html>
طلب نشر بسيط للغاية ، مربع تحديد لتحديد ملف ، وزر إرسال ، يكون التأثير كما يلي:
تحميل صفحة عرض نتيجة:
<! doctype html> <html lang = "en" xmlns: th = "http://www.thymeleaf.org"> <body>
العروض كما يلي:
4. اكتب فئة التحكم في التحميل
تفضل بزيارة LocalHost للانتقال تلقائيًا إلى صفحة التحميل:
getMapping ("/") public string index () {return "topload" ؛}تحميل معالجة الخدمة
postmapping ("/expload") السلسلة العامة singlefileUpload (requestparam ("file") ملف multipartfile ، إعادة توجيه tributes redirectattributes) {if (file.isempty ()) {redirectattributes.adddflashattribute ("message" ، يرجى تحديد ملف ") ؛ إرجاع "إعادة التوجيه: UploadStatus" ؛ } جرب {// احصل على الملف وحفظه في مكان ما byte [] bytes = file.getBytes () ؛ path path = paths.get (exploaded_folder + file.getoriginalfilename ()) ؛ files.write (المسار ، بايت) ؛ redirectattributes.addflashattribute ("message" ، "تم تحميلك بنجاح" + file.getoriginalfilename () + "" ") ؛ } catch (ioException e) {E.PrintStackTrace () ؛ } العودة "Redirect:/UploadStatus" ؛}يعني الرمز أعلاه أن معلومات الملف تتم قراءة من خلال MultipartFile ، إذا كان الملف فارغًا ، فانتقل إلى صفحة النتائج وإعطاء موجه ؛ إذا لم يكن دفق الملف فارغًا وكتابًا إلى الدليل المحدد ، فسيتم عرض النتيجة على الصفحة.
MultipartFile هي فئة تغليف للملفات التي تم تحميلها الربيع ، والتي تحتوي على معلومات مثل التدفقات الثنائية وسمات الملفات. يمكن أيضًا تكوين السمات ذات الصلة في ملف التكوين. معلومات التكوين الأساسية هي كما يلي:
spring.http.multipart.enbabled = true #default file epload.spring.http.multipart.file-size-threshold = 0 #Support writing to disk.spring.http.multipart.location = # directory reportory filleding spring.http. spring.http.multipart.max-request-size = 10mb # حجم الطلب المدعوم الحد الأقصى
الأكثر شيوعًا هما آخر محتويات التكوين ، والتي تحد من حجم تحميل الملف. إذا تجاوز الملف الحجم ، فسيتم طرح استثناء عند التحميل:
لمزيد من معلومات التكوين ، يرجى الرجوع إلى هنا: خصائص التطبيق الشائعة
5. الاستثناء معالجة
controllerAdvicePublic class GlobalExceptionHandler {exceptionHandler (multipartException.class) السلسلة العامة handleRror1 (multipartException E ، RedirectAttributes redirectattributes) {redirectattributes.addflashattribute ("message" ، egetCause (). إرجاع "Redirect:/UploadStatus" ؛ }}قم بتعيين ControllerAdvice لمراقبة ما إذا كان حجم الملف الذي تم تحميله بواسطة Multipart محدود. عند حدوث هذا الاستثناء ، يتم إعطاء مطالبة على الصفحة الأمامية. يمكنك القيام بالكثير من الأشياء باستخدام ControllerAdvice ، مثل معالجة الاستثناءات الموحدة العالمية ، وما إلى ذلك. يمكن للطلاب المهتمين أن يتعلموا عنها.
6. ملخص
يتم الانتهاء من هذا العرض التوضيحي البسيط لتحميل الملفات باستخدام SPRING BOOT. يمكن للطلاب المهتمين تنزيل رمز العينة وتجربته.
الرجوع إلى:
نموذج الرمز - جيثب
عينة من السحابة رمز الرمز
لخص
ما سبق هو ما قدمه لك المحرر باستخدام وظيفة تحميل ملف التمهيد الربيعي. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!