لا يتضمن المحلل الافتراضي لـ SpringMVC المحلل لتحميل الملف. عند استخدام SpringMVC لتحميل الملف ، تحتاج إلى استخدام إعلان Multipartresolver الذي توفره SPRINGMVC. نظرًا لأن commonsmultipartresolver تنفذ واجهة multipartresolver ، يمكننا تكوينها في ملف تكوين springmvc على النحو التالي:
<bean id = "multipartresolver"> <property name = "defaultencoding" value = "utf-8" /> <property name = "maxuploadsize" value = "10485760000" /> <property name = "maxinmemorysize" value = "40960" /> < /bean>
أولاً ، قدم الحزم المطلوبة لتحميل الملفات ، والاحتفال بالعموم-*. Jar Commons-Io-*.
إنشاء صفحة JSP جديدة.
<٪@ page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" ٪> <! <html> <head> <meta http-equiv = "content-type" content = "text/html ؛ charset = utf-8"> <title> تحميل الملف </title> </head> <body> <body> <٪ action = "user/fileupload" method = "post" enctype = multipart/form-dat "> method = "post" enctype = "multipart/form-data"> <input type = "file" name = "fileupload"/> <input type = "submit" value = "upload"/> </pody> </body> </html>
هناك العديد من أشكال ملفات تحميل springmvc ، هنا سأقدم نوعين.
النوع الأول ، انظر إلى وحدة التحكم
حزمة gd.hz.springmvc.controller ؛ استيراد java.io.file ؛ استيراد java.io.ioException ؛ استيراد 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.multipart.commons.CommonSmultipartFile ؛ استيراد org.springframework.web.servlet.modelandview ؛ controller ("USERCONTROLLER") REQUESTMAPPing ("المستخدم") الفئة العامة USERCONTROLLER {// PROCECT PROCESS UPLOADREQUESTMAPPING (value = "fileUpload" ، method = requestMethod.post) publicandview fileupload (requestparam ( System.out.println (file.getContentType ()) ؛ // الحصول على حجم الملف system.out.println (file.getSize ()) ؛ // الحصول على اسم الملف system.out.println (file.getoriginalfilename ()) ؛ // تحقق من if (! file.isempty ()) {string path = "d:/" + file.getoriginalfilename () ؛ ملف localfile = ملف جديد (path) ؛ حاول {file.transferto (localfile) ؛ } catch (alfortalStateException e) {e.printStackTrace () ؛ } catch (ioException e) {E.PrintStackTrace () ؛ }} إرجاع new ModelAndView ("datasuccess") ؛ }}توفر لنا فئة CommonSmultipartFile العديد من الطرق لمعالجة الملفات. على سبيل المثال ، حجم الملف ، اسم الملف ، نوع الملف ، والاستخدام المحدد ، يمكنك عرض مستند Spring. نقل الملف إلى مكان محدد.
الطريقة الثانية لتحميل الملف ، هذه الطريقة أكثر شيوعًا:
حزمة gd.hz.springmvc.controller ؛ استيراد java.io.file ؛ استيراد java.io.ioException ؛ استيراد java.util.iterator ؛ استيراد javax.servlet.http.httpservletrequest ؛ استيراد org.springframework.stereotype.controller ؛ استيراد org.springframework.web.bind.annotation.requestmapping ؛ استيراد org.springframework.web.bind.annotation.requestmethod ؛ استيراد org.springframework.web.multipart.multipartfile ؛ استيراد org.springframework.web.multipart.multiparthttpservletRequest ؛ استيراد org.springframework.web.multipart.commons.CommonSmultiPartresolver ؛ controller ("USERCONTROLLER") REQUESTMAPPing ("المستخدم") فئة عامة USERCONTROLLER {// Process File Upload 2 @REQUESTMAPPING (value = "fileupload2" ، method = requestMethod.post) public string fileUpload2 (httpservledrequest request) throws throws throws ، commonsmultipartresolver multipartresolver = new commonsmultipartresolver (request.getSession (). getServletContext ()) ؛ // تحقق مما إذا كان النموذج يحتوي على enctype = "multipart/form-data" إذا كان (multipartresolver.ismultipart (request)) {multiparthttpservletrequest multirequest = (multiparthttpservletrequest) ؛ iterator <string> iter = multirequest.getFilenames () ؛ بينما (iter.hasnext ()) {// الموروثة من commonsmultipartfile ، تمتلك الطريقة أعلاه. ملف multipartfile = multirequest.getFile (iter.next ()) ؛ if (file! = null) {string filename = "demoupload" + file.getoriginalfilename () ؛ string path = "d:/" + filename ؛ ملف localfile = ملف جديد (path) ؛ file.transferto (localfile) ؛ }} إرجاع "dataSucccess" ؛ }}يوفر MultiparThtTpservletRequest طريقة أكثر مرونة ، والتي يمكن أن تحصل على ملفات متعددة وأسماء الملفات ، ويمكن أن تتجاوز الحصول على كل ملف.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.