การอัปโหลดไฟล์รวมถึง SmartUpload และ Apache Commons FilePload วันนี้เราจะแนะนำการใช้งาน FilePload
1. commons-fileupload -1.3.1.jar
ดาวน์โหลดที่อยู่: http://xiazai.vevb.com/201608/yuanma/javawebfileupload(vevb.com).rar
2.web.xml
<!-อัปโหลดด้านไฟล์เซิร์ฟเวอร์-> <servlet> <servlet-name> uploadservlet </servlet-name> <servlet-lass> com.servlet.uploadservlet </servlet-class> <int-param> <param-value> f:/myeclipse/workspaces/king/webroot/uploadfile/</param-value> </init-param> </servlet> <servlet-mapping> action = "servlet/uploadservlet" method = "post" enctype = "multipart/form-data"> <div align = "center"> <fieldset> <legend> ไฟล์อัปโหลด </legend> <br/> <div allign = "left"> ไฟล์ upload file2 </div> <div align = "left"> อัปโหลด file2 </div> <div align = "left"> อัปโหลด file1 </div> <div align = "left"> อัปโหลด file1 </div> <div align = "left"> ไฟล์ up/div> </div> </div> คำอธิบาย 1 </div> <div align = 'left'> <input type = "text" name = "คำอธิบาย 1"/> </div> </div> <div> <div align = 'left'> อัปโหลดไฟล์คำอธิบาย 2 </div> <div allign = 'left'> <อินพุต type = "text" ไฟล์ "/> </div> </div> </div> </fieldset> </div> </form>
3. Servlet
แพ็คเกจ com.servlet; นำเข้า java.io.file; นำเข้า java.io.fileoutputstream นำเข้า java.io.ioexception; นำเข้า java.io.inputStreamreader; นำเข้า java.io.OutputStream; นำเข้า Java.io.printwriter; javax.servlet.http.httpservlet; นำเข้า Javax.servlet.http.httpservletRequest; นำเข้า javax.servlet.http.httpservletResponse; นำเข้า org.apache.Commons.FileUpload.diskFilePiLeupload; org.apache.Commons.FileUpload.FileUploAdexception; นำเข้า Sun.swing.filepane; การอัปโหลดระดับสาธารณะระดับสาธารณะขยาย HTTPSERVLET {สตริงส่วนตัว FilePath; /*** การทำลายล้าง servlet <br> */ โมฆะสาธารณะทำลาย () {super.destroy (); // เพียงแค่วางสตริง "ทำลาย" ในบันทึก // ใส่รหัสของคุณที่นี่} โมฆะสาธารณะ doGET (คำขอ httpservletRequest, การตอบสนอง httpservletResponse) พ่น Servletexception, iOexception {response.Setcharacterencoding ("UTF-8"); Response.getWriter (). println ("โปรดอัปโหลดไฟล์ในโพสต์"); } โมฆะสาธารณะ dopost (คำขอ httpservletrequest, การตอบสนอง httpservletResponse) พ่น servletexception, ioexception {ไฟล์ file1 = null, file2 = null; String Description1 = null, description2 = null; Response.Setcharacterencoding ("UTF-8"); request.Setcharacterencoding ("UTF-8"); Response.SetContentType ("ข้อความ/html"); PrintWriter out = response.getWriter (); diskfileupload diskfileupload = new diskFileUpload (); // คำขอแยกวิเคราะห์ลอง {list <fileItem> fileList = diskFileUpload.parserequest (คำขอ); // ใส่ผลลัพธ์ในรายการ out.println ( this.log ("ติดตามผ่าน fileitem ทั้งหมด ... "); สำหรับ (fileitem fileitem: fileList) {ถ้า (fileItem.isformfield ()) {// ถ้าเป็นฟิลด์ข้อความถ้า ("คำอธิบาย 1" .Equals (fileItem.getFieldName ())) {out.println ("เดินทางไปยังคำอธิบาย 1 ... </br>"); คำอธิบาย 1 = สตริงใหม่ (fileitem.getString (). getBytes (), "UTF-8"); } if ("คำอธิบาย 2" .Equals (fileItem.getFieldName ())) {out.println ("เดินทางไปยังคำอธิบาย 2 ... </br>"); คำอธิบาย 2 = สตริงใหม่ (fileitem.getString (). getBytes (), "UTF-8"); }} else {// มิฉะนั้นจะเป็นฟิลด์ไฟล์ถ้า ("file1" .equals (fileItem.getFieldName ())) {ไฟล์ remoteFile = ไฟล์ใหม่ (สตริงใหม่ (fileItem.getName (). getBytes (), "UTF-8")); out.println ("เดินทางไปที่ file1 ... </br>"); out.println ("ตำแหน่งไฟล์ไคลเอนต์:"+RemoteFile.getAbsolutePath ()+"</br>"); // ไฟล์ฝั่งเซิร์ฟเวอร์วางไว้ในโฟลเดอร์โฟลเดอร์ uploadfile 1 = ไฟล์ใหม่ (filePath, remotefile.getName ()); file1.getParentFile (). mkdirs (); // สร้างพา ธ โฟลเดอร์ file1.createnewfile (); // สร้างไฟล์ใหม่อินพุตสเตมอิน = fileItem.getInputStream (); // fileItem outputTream ous = fileOutputStream (file1); // = 0; // ความยาวแคชจริงในขณะที่ ((len = ins.read (บัฟเฟอร์))> -1) {// ลูปอ่านลงในแคช ous.write (บัฟเฟอร์, 0, len); } out.println ("บันทึกไฟล์"+file1.getabsolutepath ()+"</br>"); } ในที่สุด {ous.close (); ins.close (); }} if ("file2" .equals (fileItem.getFieldName ())) {ไฟล์ remotefile = ไฟล์ใหม่ (สตริงใหม่ (fileitem.getName (). getBytes (), "UTF-8")); out.println ("เดินทางไปที่ file2 ... </br>"); out.println ("ตำแหน่งไฟล์ไคลเอนต์:"+RemoteFile.getAbsolutePath ()+"</br>"); // ไฟล์ด้านข้างเซิร์ฟเวอร์วางไว้ในโฟลเดอร์โฟลเดอร์ UploadFile 2 = ไฟล์ใหม่ (FilePath, RemoteFile.getName ()); file2.getParentFile (). mkdirs (); // สร้างพา ธ โฟลเดอร์ file2.createnewfile (); // สร้างไฟล์ใหม่ inputstream ins = fileItem.getInputStream (); // เนื้อหาของ fileItem outputTream ous = new FileOutputTream (file2); // len = 0; // ความยาวแคชจริงในขณะที่ ((len = ins.read (บัฟเฟอร์))> -1) {// ลูปอ่านลงในแคช ous.write (บัฟเฟอร์, 0, len); } out.println ("บันทึกไฟล์"+file2.getabsolutepath ()+"</br>"); } ในที่สุด {ous.close (); ins.close (); }}}} out.println ("การแยกวิเคราะห์คำขอเสร็จสมบูรณ์"); } catch (fileuploadexception e) {// ToDo ที่สร้างขึ้นโดยอัตโนมัติบล็อก catch block out.println ("<! doctype html สาธารณะ/"-// w3c // dtd html 4.01 transitional // en/">"); out.println ("<html>"); out.println ("<head> <title> a servlet </title> </head>"); out.println ("<body>"); if (file1! = null) {out.println ("<div align = 'left'> file1; </div>"); 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; </div>"); out.println ("<div align = 'left'> <a href = '"+request.getContextPath ()+file2.getName ()+"' target = _blank>"+file2.getName ()+"</a>"); out.println ("</div>"); out.println ("</div>"); } out.println ("<div>"); 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 มากขึ้น