لم تكن وظيفة تحميل ملف التطوير أمرًا ممتعًا أبدًا ، وهو أكثر من ذلك بالنسبة لتحميل التحميلات غير المتزامنة. تستخدم هذه المقالة باختصار formdata من HTML5 لتنفيذ التحميل غير المتزامن للملفات ، ويمكن أيضًا تحقيق قضبان إدخال التحميل والتحقق من حجم الملف. يستخدم الخادم مخطط springMVC للمعالجة.
2 رمز HTML<form id = myform> <input type = file id = u_photo name = u_photo/> <input type = button id = submit-btn value = epload/> </poth>3 jQuery تحميل
$ (#submit-btn) .on ('click' ، function () {$ .ajax ({url:/test/upload ، type: post ، data: new formdata ($ (#myform) .get (0)) ، // من المهم جدًا حذف ذاكرة التخزين المؤقت: falsedata: false ، contentType: false ، النجاح:4 jquery حجم ملف
يجب معالجة التحكم في حجم الملف والسلوك المقابل في حد ذاته حسب الحاجة.
$ ('#U_PHOTO'). }}}) ؛5 JQuery Progress Bar
أضف XHR إلى طريقة AJAX للتحكم في تقدم التحميل. يجب معالجة شريط التقدم المخفي وتناوله بنفسه.
XHR: function () {var myxhr = $ .ajaxsettings.xhr () ؛ .attr ({value: E.Loaded ، max: e.total ،}) ؛}} ، false) ؛} إرجاع myxhr ؛}6 SPRINGMVC Server 6.1 تبعيات Maven
<Rependency> <roupeD> commons-io </rougiD> <StifactId> commons-io </shintifactid> <splex> </version> </sependency> <roupiD> commons- fileupload </rougiD> <ArtTifactId> commons-filepload </stifactid> <الإصدار> 1.3.2 </version> </premency>6.2 servlet-context.xml
<bean id = multipartresolver class = org.springframework.web.multipart.commonsmultipresolver />6.3 وحدة تحكم
لا يعطي برنامج المثال الرمز المقابل للتحقق من الملفات والتخزين والمعالجة.
requestmapping (value =/test/expload ، method = requestMethod.post) recponsebublic string تحميل ( @requestparam (u_photo) multipartfile _photo) {system.out.println (u_photo =+u_photo.getsize ()7 التوافق
أي 10+ ، Firefox 4.0+ ، Chrome 7+ ، Safari 5+ ، Opera 12+
8 القراءة الموصى بهاإذا لم تكن راضيًا عن الخطة أعلاه ، فمن المستحسن استخدام الحلول التالية:
تحميل ملف jQuery
ما سبق هو وظيفة التحميل غير المتزامن لملف HTML5 الذي تم تقديمه بواسطة Xiaobian. شكرا جزيلا لدعمكم لموقع VEVB Wulin!