ثلاث طرق لتحميل الملفات في springmvc ، فقط تحميل الرمز ، يمكنك معرفة لمحة
مكتب الاستقبال:
<٪@ page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" ٪> <! "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" content-type "content =" text/html ؛ charset = utf-8 "> <title> أدخل العنوان هنا </head> Action = "/springmvc006/fileupload" method = "post" enctype = "multipart/form-data"> <h1> تحميل ملفات باستخدام دفق </h1> <input type = "file" name = "file"> <input type = "president" value = "topload" // form> <form name = "action2" enctype = "multipart/form-data"> <h1> تحميل الملفات باستخدام ملف file.transfer المتوفر بواسطة multipart </h1> <input type = "file" name = "file"> <input type = "prident" value = "upload"/> </form> <form name = "form2 enctype = "multipart/form-data"> <h1> قم بتحميل الملف باستخدام الطريقة المقدمة بواسطة spring mvc </h1> <input type = "file" name = "file"> <input type = "subvice" value = "topload"/> </pody> </body> </html>
إعدادات:
<!-تحميل ملف multipart-> <bean id = "multipartresolver"> <property name = "maxuploadsize" value = "104857600" /> <property name = "maxInMemorySize" < /bean>
وراء الكواليس:
الطريقة 1:
/*. startTime = system.currentTimeMillis () ؛ System.out.println ("filename:"+file.getoriginalfilename ()) ؛ جرب {// الحصول على Output Stream OutputStream OS = جديد fileOutputStream ("E:/"+New Date (). GetTime ()+file.getoriginalfilename ()) ؛ // احصل على دفق الإدخال commonsmultipartfile للحصول مباشرة على إدخال دفق الملف هو = file.getInputStream () ؛ درجة حرارة // اقرأ وكتابة البايت واحدًا تلو الآخر إلى حين ((temp = iS.Read ())! = (-1)) {os.write (temp) ؛ } os.flush () ؛ OS.Close () ؛ is.close () ؛ } catch (fileNotfoundException e) {// todo catch catch e.printstacktrace () ؛ } long endtime = system.currentTimeMillis () ؛ System.out.println ("وقت تشغيل الطريقة الأولى:"+string.valueof (EndTime-StartTime)+"MS") ؛ العودة "/النجاح" ؛ }الطريقة 2:
/** استخدم file.transto لحفظ الملف الذي تم تحميله*/ @requestmapping ("fileupload2") السلسلة العامة fileupload2 ( @requestparam ("file") ملف commonsmultipartfile) يلقي ioException {long startTime = System.CurrentTimeMillis () ؛ System.out.println ("filename:"+file.getoriginalfilename ()) ؛ string path = "e:/"+new date (). getTime ()+file.getoriginalfilename () ؛ ملف newFile = ملف جديد (path) ؛ // اكتب الملف مباشرة من خلال طريقة commonsmultipartfile (ملاحظة هذه المرة) file.transferto (newFile) ؛ endtime long = system.currentTimeMillis () ؛ System.out.println ("وقت تشغيل الطريقة الثانية:"+string.valueof (EndTime-StartTime)+"MS") ؛ العودة "/النجاح" ؛ }الطريقة 3:
/**استخدم طريقة تحميل الملفات التي توفرها SPRING*/ REQUESTMAPPE ("Springupload") السلسلة العامة springupload (httpservletrequest) لإلقاء القلة غير القانوني ، ioException {long startTime = system.currentTimEmillis () ؛ . // تحقق مما إذا كان هناك enctype = "multipart/form-data" في النموذج إذا (multipartresolver.ismultipart (request)) {// request request to multipart request multiparthttpletrequest multirequest = (multiparthttpletRequest) request ؛ // احصل على جميع أسماء الملفات في ITerator multirequest iter = multirequest.getFilenames () ؛ بينما (iter.hasnext ()) {// transfuse جميع الملفات في وقت واحد multiretfile = multirequest.getFile (iter.next (). toString ()) ؛ if (file! = null) {string path = "e:/springupload"+file.getoriginalfilename () ؛ // تحميل file.transferto (ملف جديد (مسار)) ؛ }}} long endtime = system.currentTimeMillis () ؛ System.out.println ("وقت تشغيل الطريقة الثالثة:"+string.valueof (EndTime-StartTime)+"MS") ؛ العودة "/النجاح" ؛ }لنلقي نظرة على وقت تحميل الاختبار:
في المرة الأولى التي استخدمت فيها ملف 4M:
اسم الملف: Test.Rar
الطريقة 1 وقت التشغيل: 14712ms
اسم الملف: Test.Rar
الطريقة 2 وقت التشغيل: 5 مللي ثانية
الطريقة 3 وقت التشغيل: 4 مللي ثانية
المرة الثانية: أستخدم ملف 50M
تقدم الطريقة بطيئة للغاية ، وسوف يستغرق 5 دقائق.
الطريقة 2 وقت التشغيل: 67 مللي ثانية
الطريقة 3 وقت التشغيل: 80ms
من نتائج الاختبار ، يمكننا أن نرى أن طريقة تحميل الملفات باستخدام springMVC أسرع بكثير!
بالنسبة لنتائج الاختبار 2: قد يكون البحث عن الطريقة الثالثة واحدة تلو الأخرى ، لذلك يجب أن تكون أبطأ. ولكن بشكل عام ، لدينا الطريقة 3 لأنه يمكن أن يوفر لنا المزيد من الطرق
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.