1. Paket yang Diperlukan:
1. Commons-Fileupload-1.2.1.jar:
Alamat unduhan
http://commons.apache.org/downloads/download_fileupload.cgi
2. Commons-io-1.4.jar:
Alamat unduhan
http://commons.apache.org/downloads/download_io.cgi
2. Hal yang perlu diperhatikan:
Enctype = "multipart/form-data" harus ditambahkan ke formulir formulir
3. Contoh Kode
1. Kode JSP:
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <! Doctype html public "-// w3c // dtd html 4.01 transisi // en" "http://www.w3.org/org/ht4/t." <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>upload</title> </head> <body> <form action="uploadServlet" method="post" enctype="multipart/form-data"> <table> <caption>Upload instance</caption> <tr> <td>Name</td> <td> <input type="text" name="name"> </td> </tr> <tr> <td>Age</td> <td> <input type="text" name="age"> </td> </tr> <tr> <td>Photo</td> <td> <input type="file" name="image"> </td> </tr> <tr> <td> </td> <td> <input type = "kirim" value = "kirim"> </td> </tr> </able> </form> </body> </html>
2. Mengunggah kode
paket servlet; impor java.io.bufferedInputStream; impor java.io.bufferedoutputStream; impor java.io.file; impor java.io.fileoutputStream; impor java.io.ioException; impor java.io.writer; impor java.util.iterator; impor java.util.list; impor javax.servlet.servletException; impor javax.servlet.http.httpservlet; impor javax.servlet.http.httpservletRequest; impor javax.servlet.http.httpservletResponse; impor org.apache.commons.fileupload.fileItem; impor org.apache.commons.fileupload.fileuploadexception; impor org.apache.commons.fileupload.fileuploadexception; impor org.apache.commons.fileupload.disk.diskfileItemFactory; impor org.apache.commons.fileupload.servlet.servletfileupload; impor org.apache.commons.fileupload.util.streams; / ** * Unggah servlet * @author lisanlai * */ kelas publik UploadServlet memperluas httpservlet {private static final long serialversionuid = 1l; unggahan publik () {super (); } Protected void doGet (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {this.dopost (permintaan, respons); } @SuppressWarnings ("Uncecked") void dopost yang dilindungi (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {response.setContentType ("Teks/html"); // Atur pengkodean karakter ke UTF-8, sehingga karakter Cina menampilkan respons.setcharacterencoding ("UTF-8"); Penulis o = response.getWriter (); /** * Pertama, tentukan apakah formulir enctype adalah multipart/form-data * pada saat yang sama, itu juga menentukan apakah metode pengiriman formulir adalah metode post *: isMultipartContent (permintaan) */if (servletfileuppload.ismultipartcontent (request)) {request.setcharacterenceCoding ("utrf-8"); // Instantiate Pabrik File Hard Disk untuk mengonfigurasi komponen unggah servletfileupload diskfileItemFactory factory = DiskFileItemFactory baru (); // Atur folder sementara untuk penyimpanan file, folder ini harus benar -benar ada file file = file baru ("../ webapps/fileupload/tmp/"); if (filedir.isdirectory () && filedir.exists () == false) {filedir.mkdir (); } factory.setrepository (FileDir); // atur memori maksimum yang ditempati pabrik. // Buat servletFileUpload objek servletfileupload sfu = servletfileupload baru (pabrik); sfu.setheaderencoding ("UTF-8"); // Atur nilai maksimum satu byte file tunggal sfu.setfilesizeMax (102400000); // Jumlah semua file yang diunggah adalah byte maksimum sfu.setsizeMax (204800000); Daftar <FILEITEM> item = NULL; coba {item = sfu.parserequest (permintaan); } catch (sizelimitexededException e) {System.out.println ("Ukuran file melebihi maksimum"); } catch (FileuploAdException e) {E.PrintStackTrace (); } // Dapatkan iterator item iterator <FILEItEM> iter = item == null? Null: items.iterator (); // Path Directory disimpan setelah gambar unggah gambar gambar = file baru ("d:/unggah/gambar/"); if (gambar.exists () == false) {images.mkdirs (); } // item iterasi while (iter! = Null && iter.hasnext ()) {fileitem item = (fileitem) iter.next (); // jika lulus adalah bidang formulir biasa jika (item.isformField ()) {System.out.print ("Bidang Formulir biasa:"); System.out.print (string baru (item.getFieldName ()) + ""); System.out.println (string baru (item.getString ("UTF-8"))); } // File Field Lain if (! Item.isFormField ()) {System.out.println ("Gambar sumber:" + item.getName ()); String filename = item.getName (). Substring (item.getName (). LastIndexof ("//")); BufferedInputStream in = new bufferedInputStream (item.getInputStream ()); // File disimpan di direktori d:/unggah/gambar, dan direktori ini juga harus memiliki bufferedOutputStream out = baru bufferedOutputStream (FileOutputStream baru (file baru (gambar.getAbsolutePath ()+ fileName))); Streams.copy (in, out, true); o.write ("File Unggah sukses"); }}}} else {System.out.println ("Form ENCTYPE TYPE ERROR"); }}}}} 3. Web.xml
<? Xml Version = "1.0" encoding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://java.sun.com/xmlns =" http://java.com/xmlns = "http://java.com/xmlns = xmlns: web = "http://java.sun.com/xml/ns/javaee" xmlns: web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" ID = "webapp_id" Versi = "2.5"> <play-name> <welcome-file>upload.jsp</welcome-file> </welcome-file-list> <servlet> <description></description> <display-name>UploadServlet</display-name> <servlet-name>UploadServlet</servlet-name> <servlet-class>servlet.UploadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name> unggahServlet </servlet-name> <rerl-pola>/uploadservlet </rerl-pola> </servlet-mapping> </seb-app>
Artikel ini telah dikompilasi menjadi "Ringkasan Teknik Operasi Upload Java", dan semua orang dipersilakan untuk belajar dan membaca.
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.