لقد قمت دائمًا بتحميل الملفات باستخدام نماذج النماذج لتحميل الملفات. لقد رأيت أيضًا أشخاص يقومون بتحميل الملفات باستخدام JS ، لكن يبدو الأمر بسيطًا للغاية ، لذلك لم أكن قد أولي اهتمامًا كبيرًا بها. اليوم أردت فجأة استخدام هذه الطريقة لتحميل الملفات ، واجهت بعض المشكلات خلال هذه الفترة. لذلك ، يتم تسجيله حتى تتمكن من التحقق من ذلك إذا واجهت مثل هذه المشكلات في المستقبل.
أول شيء هو تقديم ملفات JS و AjaxfileUpload ، والتي لا يلزم قولها كثيرًا.
ثم هناك Ajax يطلب عنوان الخلفية. الرمز كما يلي:
<div> <input type = "file" id = "expload" name = "upload" style = "font-size: 0 ؛ opacity: 0 ؛ width: 100 ٪ ؛ height: 100 ٪ ؛ position: absolute ؛ left: 0 ؛ top: 0 ؛ "/test/user/imgupload" ، // backend request type: "post" ، // method require at structure ، يجب أن يتم تعيين هذه المعلمة على Post Secureuri: false ، "JSON" ، يمكن أن يكون نوع البيانات الذي تم إرجاعه بواسطة الخادم XML ، و JSON ، HTML. تنبيه (json.retmsg) ؛
عند اكتمال رمز الواجهة الأمامية ، سيتم تطوير رمز الخلفية.
package com.roc.test ؛ استيراد java.io.file ؛ استيراد java.util.list ؛ استيراد javax.servlet.http.httpservletrequest ؛ استيراد javax.servlet.http.httpservletrespons javax.ws.rs.produces ؛ استيراد javax.ws.rs.queryparam ؛ استيراد javax.ws.rs.core.context ؛ استيراد javax.ws.rs.core.mediaType ؛ استيراد net.sf.json.jsonobject org.apache.commons.fileupload.disk.diskfileItemFactory ؛ import org.apache.commons.fileupload.servlet.servletfilepload ؛ import org.jboss.resteasy.annotations.providers.jaxb.json.badgerfish ؛ org.springframework.stereotype.controller ؛ import net.sf.json.jsonobject ؛/** * endload file * author liaowp * */ @controller @path ("/user") exploadimg {path ("/imgupload") post @produces ( consumes (MediaType.multipart_form_data) badgerfish public jsonobject upload (QeryRyParam ("orderid") string orderid ،@context httpservletrequest request ،@context httpservletresponse respress) string file_path = request.getsession (). getServletContext (). ملف الملف = ملف جديد (file_path) ؛ if (! file.exists () &&! file.isdirectory ()) {// إذا لم يكن المجلد موجودًا ، قم بإنشاء file.mkdir () ؛ expload_file_path = file_path ؛ } else {upload_file_path = file_path ؛ } diskfileItemFactory Factory = new DiskfileItemFactory () ؛ // تعيين مصنع المصنع. تحميل. في الواقع ، لا يوجد سوى اسم ملف سلسلة خط واحد = "" ؛ قائمة <FileItem> قائمة ؛ jsonobject jsonobj = new jsonobject () ؛ حاول {list = upload.parserequest (request) ؛ لـ (fileItem item: list) {if (item.isformfield ()) {string name = item.getFieldName () ؛ قيمة السلسلة = item.getString ("UTF-8") ؛ } آخر {string name = item.getFieldName () ؛ قيمة السلسلة = item.getName () ؛ filename = name + ".jpg" ؛ if (item.getSize ()> 10485760) {// hello ، يجب أن يكون ملف التحميل أقل من 10 أمتار! jsonobj.put ("Retcode" ، "100") ؛ يجب أن يكون jsonobj.put ("retmsg" ، "Hello ، تحميل الملف أقل من 10 أمتار!"):} آخر {// تحميل بنجاح item.write (ملف جديد (upload_file_path ، اسم الملف)) ؛ System.out.println (file.separator + "corpfile" + file.separator + filename) ؛ jsonobj.put ("Retcode" ، "0") ؛ jsonobj.put ("retmsg" ، "مرحبًا ، تحميل بنجاح!") ؛ }}}}} catch (استثناء e) {// expload فشل E.PrintStackTrace () ؛ jsonobj.put ("Retcode" ، "9999") ؛ jsonobj.put ("retmsg" ، "Hello ، فشل تحميل الملف ،") ؛ } إرجاع jsonobj ؛ }}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.