تشمل عمليات تحميل الملفات SmartUpload و Apache Commons FileUpload. اليوم سوف نقدم استخدام المشاع FileUpload.
1.Commons-filepload-1.3.1.jar
تنزيل العنوان: http://xiazai.vevb.com/201608/yuanma/javawebfileupload(vevb.com).rar
2.web.xml
<!-تحميل ملفات ملفات الملف-> <Servlet> <Sradlet-Name> UploadServlet </servlet-name> <Sradlet-Class> com.servlet.uploadservlet </servlet-class> <Ing-param> <param-name> filepath </arm-name> <!-مسار تخزين الملف-> <Param-value> f:/myeclipse/workpaces/king/webroot/uploadfile/</param-value> </ith-param> </servlet> <Sradlet-mapping> <Sradlet-Name> uploadservlet </radlet-name> <Url-patern> Action = "servlet/uploadservlet" method = "post" enctype = "multipart/form-data"> <div align = "center"> <fieldset> <legend> تحميل ملف </legend> <br/> <div align = "left" align = "left"> تحميل ملفات 2 </viv> <div align = "left"> تحميل الملف 2 </div> <div align = "left"> تحميل ملف 1 </viv> <div align = "left" ALING = 'LEFT'> تحميل ملف description1 </div> <div align = 'left'> <input type = "text" name = "description1"/> </div> </div> <viv> <div align = 'left' اكتب = 'إرسال' value = "تحميل ملف"/> </viv> </viv> </viv> </fieldset> </viv> </poth>
3. Servlet
package com.servlet ؛ import java.io.file ؛ import java.io.fileOutputStream ؛ import java.io.ioException ؛ import java.io.inputstreamreader ؛ import java.io.outputstream ؛ import java.printwriter javax.servlet.http.httpservlet ؛ استيراد javax.servlet.http.httpletrequest org.apache.commons.fileupload.fileItem ؛ import org.apache.commons.fileupload.fileuploadexception ؛ import sun.swing.filepane ؛ public class uploadservlet يمتد httpservlet {private string filepath ؛ /*** تدمير servlet. <br> */ public void Dorner () {super.destroy () ؛ // فقط يضع سلسلة "تدمير" في log // وضع الكود الخاص بك هنا} doget public void (طلب httpservletrequest ، استجابة httpservletresponse) يلقي servletexception ، ioException {response.setcharacterencoding ("UTF-8") ؛ Response.getWriter (). println ("يرجى تحميل الملف في post") ؛ } public void dopost (طلب httpservletrequest ، استجابة httpservletresponse) يلقي servletexception ، ioException {file file1 = null ، file2 = null ؛ سلسلة الوصف 1 = null ، description2 = null ؛ استجابة. setcharacterencoding ("UTF-8") ؛ request.setcharacterencoding ("UTF-8") ؛ استجابة. printWriter out = response.getWriter () ؛ diskfileupload diskfileUpload = new diskfileupload () ؛ // طلب parse حاول {list <IpileItem> fileList = diskfileUpload.parserequest (request) ؛ // وضع النتيجة في القائمة. this.log ("تتبع من خلال جميع fileItem ...") ؛ لـ (fileItem fileItem: fileList) {if (fileItem.isformField ()) {// إذا كان حقل نص إذا ("description1" .equals (fileItem.getFieldName ())) {out.println ("السفر إلى الوصف 1 ... </br>") ؛ الوصف 1 = سلسلة جديدة (fileItem.getString (). getBytes () ، "UTF-8") ؛ } if ("description2" .equals (fileItem.getFieldName ())) {out.println ("Travel to Description2 ... </br>") ؛ الوصف 2 = سلسلة جديدة (fileItem.getString (). getBytes () ، "UTF-8") ؛ }} آخر {// وإلا فإن حقل الملف إذا ("file1" .equals (fileItem.getFieldName ())) {file remotefile = new file (new string (fileItem.getName (). getBytes () ، "UTF-8")) ؛ Out.println ("السفر إلى file1 ... </br>") ؛ Out.println ("ملف العميل موقع:"+remotefile.getabsolutepath ()+"</br>") ؛ // ملف جانبي الخادم ، ضع في ملف uploadFile File1 = ملف جديد (FilePath ، remotefile.getName ()) ؛ file1.getParentFile (). mkdirs () ؛ // إنشاء مسار المجلد file1.createNewFile () ؛ // إنشاء ملف جديد inputStream ins = fileItem.getInputStream () ؛ 0 ؛ // طول ذاكرة التخزين المؤقت الفعلي بينما ((len = ins.read (buffer))> -1) {// loop read in the cache ous.write (buffer ، 0 ، len) ؛ } out.println ("حفظ الملف"+file1.getabsolutepath ()+"</br>") ؛ } أخيرًا {ous.close () ؛ ins.close () ؛ }} if ("file2" .equals (fileItem.getFieldName ()))) Out.println ("السفر إلى file2 ... </br>") ؛ Out.println ("ملف العميل موقع:"+remotefile.getabsolutepath ()+"</br>") ؛ // ملف جانبي الخادم ، ضع في ملف uploadfile file2 = ملف جديد (filePath ، remotefile.getName ()) ؛ file2.getParentFile (). 0 ؛ // طول ذاكرة التخزين المؤقت الفعلي بينما ((len = ins.read (buffer))> -1) {// loop read in the cache ous.write (buffer ، 0 ، len) ؛ } out.println ("حفظ الملف"+file2.getabsolutepath ()+"</br>") ؛ } أخيرًا {ous.close () ؛ ins.close () ؛ }}}} out.println ("تم الانتهاء من تحليل الطلب") ؛ } catch (fileUploAdexception e) {// TODO التي تم إنشاؤها تلقائيًا catch Out.println ("<! doctype html public/"-// w3c // dtd html 4.01 transitional // en/">") ؛ out.println ("<html>") ؛ Out.println ("<head> <title> servlet </title> </head>") ؛ out.println ("<body>") ؛ if (file1! = null) {out.println ("<div align = 'left'> file1 ؛ </viv>") ؛ out.println ("<div align = 'left'> <a href = '"+request.getContextPath ()+file1.getName ()+"' target = _blank>"+file1.getName ()+"</a>") ؛ out.println ("</div>") ؛ out.println ("</div>") ؛ } if (file2! = null) {out.println ("<div align = 'left'> file2 ؛ </viv>") ؛ out.println ("<div align = 'left'> <a href = '"+request.getContextPath ()+file2.getName ()+"' target = _blank>"+file2getName ()+"</a>") ؛ out.println ("</div>") ؛ out.println ("</div>") ؛ } out.println ("<viv>") ؛ out.println ("<div align = 'left'> الوصف 1: </div>") ؛ out.println ("<div align = 'left'> الوصف 2: </div>") ؛ out.println ("<div align = 'left'> الوصف 2: </div>") ؛ out.println ("<div align = 'left'> الوصف 2: </div>") ؛ out.println ("<div align = 'left'>") ؛ out.println ("<div align = 'left'>") ؛ out.println ("<div align = 'left'>") ؛ Out.println (الوصف 2) ؛ out.println ("</div>") ؛ out.println ("</div>") ؛ Out.println ("</body>") ؛ out.println ("</html>") ؛ out.flush () ؛ out.close () ؛ }} السلسلة العامة getServleTinfo () {return "هذا هو servlet الافتراضي الذي تم إنشاؤه بواسطة Eclipse" ؛ } public void init () يلقي servletexception {// ضع الكود الخاص بك هنا filePath = getServletConfig (). getInitParameter ("filepath") ؛ }}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.