تشارك هذه المقالة رمزًا محددًا لتحميل ملف التمهيد الربيعي للرجوع إليه. المحتوى المحدد كما يلي
1. قم بإنشاء مشروع ويب Maven ، ثم قم بتكوين ملف pom.xml ، وأضف تبعيات:
<Rependency> <roupeD> org.springframework.boot </rougiD> <intifactid> Spring-Boot-Starter-Web </shintifactid> <sored> 1.0.2.release </version> </repension>
2. أدخل نموذجًا في ملف index.jsp في دليل webapp:
<html> <Body> <method method = "post" env "=" multipart /form-data "Action =" /expload "> to upload: <input type =" file "name =" file "> <br /> name: <input type =" text "name =" 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 الفئة العامة fileUploAdController { @requestmapping (value = "/expload" ، method = requestMethod.get) publicresponseBody سلسلة توفر uploadinfo () {return "يمكنك تحميل ملف عن طريق النشر إلى نفس عنوان URL." ؛ } @requestmapping (value = "/expload" ، method = requestMethod.post) publicResponsebody String HandlefilePload ( @requestparam ("name") اسم السلسلة ، requestparam ("file") multipartfile) {if (! BufferEdoutputStream Stream = جديد BufferedOutputStream (FileOutputStream جديد (ملف جديد (name + "-uploaded"))) ؛ Stream.write (بايت) ؛ Stream.close () ؛ إرجاع "أنت تم تحميله بنجاح" + name + "إلى" + name + "-uploaded!" ؛ } catch (استثناء e) {return "لقد فشلت في تحميل" + name + "=>" + E.GetMessage () ؛ }} آخر {return "لقد فشلت في تحميل" + name + "لأن الملف كان فارغًا." ؛ }}}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 multipartConfigElement multipartConfigElement () {multipartConfiGfactory factory = multipartConfigFactory () ؛ مصنع. Factory.SetMaxRequestSize ("128kb") ؛ Return Factory.CreateMultiPartConfig () ؛ } public static void main (string [] args) {springapplication.run (application.class ، args) ؛ }}5. ثم تفضل بزيارة http: // localhost: 8080/تحميل لمشاهدة الصفحة.
المثال أعلاه ينفذ وظيفة تحميل ملف واحد. على افتراض أننا نريد تنفيذ وظيفة تحميل الدُفعات للملفات الآن ، فإننا نحتاج فقط إلى تعديل الكود أعلاه. بالنظر إلى مشكلة الطول ، فإن ما يلي هو مجرد رمز مختلف عن ما سبق ، ولا يتم نشر الأوصاف على النحو الوارد أعلاه. :
1. إضافة ملف batchupload.jsp
<html> <Body> <method method = "post" env "enved =" multipart/form-data "action ="/batch/upload "> to upload: <input type =" file "name =" file "> <br/> file to upload: <input type =" file "name =" file " </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/epload" ، method = requestMethod.post) publicresponsebody string handlefilepload (httpservlequest request) {list <multipartfile> file = (multiparthtttplet لـ (int i = 0 ؛ i <files.size () ؛ ++ i) {multipartfile file = files.get (i) ؛ اسم السلسلة = file.getName () ؛ if (! file.isempty ()) {try {byte [] bytes = file.getBytes () ؛ BufferEdoutputStream Stream = جديد BufferedOutputStream (FileOutputStream جديد (ملف جديد (name + i))) ؛ Stream.write (بايت) ؛ Stream.close () ؛ } catch (استثناء e) {return "لقد فشلت في تحميل" + name + "=>" + E.GetMessage () ؛ }} آخر {return "لقد فشلت في تحميل" + name + "لأن الملف كان فارغًا." ؛ }} إرجاع "تحميل ناجح" ؛ }}هذه وظيفة تحميل الدُفعات البسيطة على ما يرام ، أليس الأمر بسيطًا جدًا؟
ملاحظة: الرمز أعلاه مخصص فقط للظهور ، وبالتالي فإن نمط الترميز يتبنى نهجًا غير رسمي ، ولا ينصح بأن يقلده الجميع.
المرجع: multipartresolver تنفذ وظيفة تحميل الملف
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.
1. يمكن أيضًا تنفيذ وظيفة تحميل الملفات. المادة المرجعية: