Saat ini ada dua metode yang umum digunakan untuk mengunggah file, satu adalah Smartupload dan yang lainnya adalah fileupload Apache's Commons .
Di sini kami terutama memperkenalkan penggunaan yang kedua. Pertama, Anda perlu mengunggah file dan memperhatikan beberapa masalah:
1 Dalam formulir formulir, tambahkan ruang <input type = "file" name = "myfile">
2 Format konten bentuk bentuk harus didefinisikan sebagai format multipart/form-data
3 Perpustakaan Kelas yang Diperlukan: 1 Commons-Oo.Jar 2 Commons-Fileupload-1.3.1.jar
Selanjutnya, mari kita lihat penggunaannya.
Pertama, baca dokumentasi resmi fileupload Apache Commons dan Anda dapat menemukan fungsi yang umum digunakan berikut:
1 Buat objek parsing file
Salinan kode adalah sebagai berikut: diskfileupload diskfileUpload = DiskFileUpload baru ();
2 Setelah mem -parsing file, masukkan ke dalam daftar. Karena pustaka kelas ini mendukung beberapa file unggahan, hasilnya akan disimpan dalam daftar.
Salinan kode adalah sebagai berikut: Daftar <FILEITEM> DAFTAR = DISKFILEUPLOAD.PARSEREQUEST (permintaan);
3 Dapatkan file yang diunggah dan lakukan analisis (tidak perlu)
Salinan kode adalah sebagai berikut: File remoteFile = file baru (string baru (fileitem.getName (). GetBytes (), "UTF-8"));
4 Buat objek baru dan lakukan salinan streaming
file1 = file baru (this.getSerVletContext (). getRealPath ("lampiran"), remoteFile.getName ()); file1.getParentFile (). mkdirs (); file1.createNewFile (); InputStream INS = fileItem.getInputStream (); OutputStream ous = FileOutputStream baru (file1); coba {byte [] buffer = byte baru [1024]; int len = 0; while ((len = ins.read (buffer))> -1) ous.write (buffer, 0, len); out.println ("Untuk menyimpan file"+file1.getAbsolutePath ()+"<br/>"); } akhirnya {ous.close (); INS.CLOSE (); }Dengan cara ini, kami menyelesaikan unggahan file.
fileupload.html
<Form Action = "Servlet/UploadServlet" Method = "POST" ENCTYPE = "Multipart/Form-Data"> <Div align = "Center"> <fieldset> <segend> File unggah </legend> <br/> <Div Align = "Left"> unggah file1 </Div> <div align = "kiri"> unggahan = "inpum"> Div ALIGN </DIV> <DIV ALIGN = "LIFLE"> UEDLOAD = "inpum" unggah "</Div> <div align =" left "> unggah" unggahan " name = "File1"/> </Div> <Div Align = "Left"> Unggah File2 </div> <Div Align = "Left"> <input type = "file" name = "file2"/> </div> <v> <div align = 'left'> unggah file "</div> <Div Align = 'kiri'> <input =" TEPPAKS1 "</Div> <Div Align = 'Left'> <input =" TEPPAT "UNCURE1" </Div> <Div Align = 'kiri'> <input = " Align = 'Left'> Unggah Instruksi File </Div> <Div Align = 'Left'> <Input type = "Text" Name = "Deskripsi2"/> </Div> </Div> <v> <Div Align = 'Left'> <Input Type = 'Kirim' Nilai = "Unggah File"/</Div> </fieldset> </Divit '
Web.xml
<servlet> <servlet-name> unggahServlet </servlet-name> <servlet-class> com.test.hello.uploadservlet </servlet-class> </servlet> <servlet-papping> <servlet-name> unggah </servlet--name> <ubl-pattern>/servlet/unggah> </servlet-name> <rest-pattern>/servlet/unggah </servlet-podlet/servlet </servlet--pattion/servlet/unggahan </servlet-name/unggah </servlet/unggah </servlet/unggah </servlet/unggah </servlet/unggah </servlet/unggah </servlet,
UnggahServlet.java
Paket com.test.hello; impor java.io.file; impor java.io.fileoutputStream; import java.io.ioException; impor java.io.inputStream; impor java.io.outputStream; impor java.printwriter; impor java.util.list; javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletResponse; import org.commons.fileupload.diskfileuMleUitMleitMleitMleitMleit; orgome.commons.fileupload.diskfileUuploAdoDoDoAdoDoAD.diskFileUcloAdeUit; org.apache.commons.fileupload.fileuploAdException; kelas publik unggahanServlet memperluas httpservlet { /*** konstruktor objek. */ unggahan publik () {super (); } /*** Penghancuran servlet. <br> */ public void hancur () {super.destroy (); // Hanya menempatkan string "hancurkan" di log // masukkan kode Anda di sini} /*** Metode doget dari servlet. <br> * * Metode ini dipanggil ketika suatu formulir memiliki metode nilai tag sama untuk mendapatkannya. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setcharacterencoding ("UTF-8"); response.getWriter (). println ("Harap unggah file di pos"); } /*** Metode dopost dari servlet. <br> * * Metode ini dipanggil ketika suatu formulir memiliki metode nilai tag sama untuk memposting. * * @param request the request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ @SuppressWarnings({ "unchecked", "deprecation" }) public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, ioException {file file1 = null, file2 = null; String description1 = null, description2 = null; response.setcharacterencoding ("UTF-8"); request.setcharacterencoding ("UTF-8"); response.setContentType ("Teks/html"); Printwriter out = response.getWriter (); Diskfileupload diskfileUpload = DiskFileUpload baru (); coba {list <fileitem> list = diskfileupload.parsequest (request); out.println ("Transfer semua fileitem ... <br/>"); untuk (fileitem fileItem: list) {if (fileitem.isFormField ()) {if ("description1" .equals (fileitem.getFieldName ())) {out.println ("Transfer ke deskripsi1 ... <br/>"); deskripsi1 = string baru (fileitem.getString (). getBytes (), "UTF-8"); } if ("description2" .equals (fileitem.getFieldName ())) {out.println ("Travel to Description2 ... <br/>"); deskripsi2 = string baru (fileitem.getString (). getBytes (), "UTF-8"); }} else {if ("file1" .equals (fileitem.getFieldName ())) {file remoTeFile = file baru (string baru (fileitem.getName (). getBytes (), "UTF-8")); out.println ("Travel to File1 ... <br/>"); out.println ("Lokasi File Klien:"+RemoteFile.getAbsolutePath ()+"<br/>"); file1 = file baru (this.getSerVletContext (). getRealPath ("lampiran"), remoteFile.getName ()); file1.getParentFile (). mkdirs (); file1.createNewFile (); InputStream INS = fileItem.getInputStream (); OutputStream ous = FileOutputStream baru (file1); coba {byte [] buffer = byte baru [1024]; int len = 0; while ((len = ins.read (buffer))> -1) ous.write (buffer, 0, len); out.println ("Untuk menyimpan file"+file1.getAbsolutePath ()+"<br/>"); } akhirnya {ous.close (); INS.CLOSE (); }} if ("file2" .equals (fileitem.getFieldName ())) {file remoTeFile = file baru (string baru (fileitem.getName (). getBytes (), "UTF-8")); out.println ("Travel to File2 ... <br/>"); out.println ("Lokasi File Klien:"+RemoteFile.getAbsolutePath ()+"<br/>"); file2 = file baru (this.getSerVletContext (). getRealPath ("lampiran"), remoteFile.getName ()); file2.getParentFile (). mkdirs (); file2.createNewFile (); InputStream INS = fileItem.getInputStream (); OutputStream ous = FileOutputStream baru (file2); coba {byte [] buffer = byte baru [1024]; int len = 0; while ((len = ins.read (buffer))> -1) ous.write (buffer, 0, len); out.println ("Untuk menyimpan file"+file2.getAbsolutePath ()+"<br/>"); } akhirnya {ous.close (); INS.CLOSE (); }}} out.println ("Parsing permintaan selesai <br/> <br/>"); }} catch (FileuploAdException e) {} out.println ("<! Doctype html public/"-// w3c // dtd html 4.01 transisional // en/">"); out.println ("<head> <title> a servlet </iteme> </head>"); out.println ("<body>"); if (file1! = null) {out.println ("<div>"); out.println ("<div align = 'left'> file1; </div>"); out.println ("<div align = 'kiri'> <a href = '"+request.getContextPath ()+"/lampiran/"+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 = 'kiri'> <a href = '"+request.getContextPath ()+"/lampiran/"+file2.getname ()+"' target = _blank>"+file2.getname ()+"</a>"); out.println ("</div>"); out.println ("</div>"); } out.println ("<div>"); out.println ("<div align = 'left'> Deskripsi1: </div>"); out.println ("<div align = 'left'>"); out.println (deskripsi1); out.println ("</div>"); out.println ("</div>"); out.println ("</div>"); out.println ("<div align = 'left'> Deskripsi2: </div>"); out.println ("<div align = 'left'> Deskripsi2: </div>"); out.println ("<div align = 'left'>"); out.println ("</div>"); out.println ("</div>"); out.println ("</body>"); out.println ("</html>"); out.flush (); out.close (); } /*** Inisialisasi servlet. <br> * * @throws servletException Jika terjadi kesalahan */ public void init () melempar servletException {// letakkan kode Anda di sini}}Contoh menjalankan
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.