Artikel ini menggunakan contoh untuk memperkenalkan cara menggunakan commons-fileupload.jar. Apache's Commons-Fileupload.jar untuk memfasilitasi fungsi unggahan file. Konten spesifiknya adalah sebagai berikut
Place Apache's Commons-Fileupload.jar di bawah Web-Inf/Lib dalam aplikasi dan siap digunakan. Contoh berikut menunjukkan cara menggunakan fungsi unggahan file.
Versi Fileupload yang digunakan adalah 1.2 dan lingkungannya adalah Eclipse3.3+Myeclipse6.0. FileUpload didasarkan pada Commons IO, jadi sebelum memasuki proyek, tentukan Paket JAR Commons IO (menggunakan Commons-OO-1.3.2.jar dalam artikel ini) di bawah Web-Inf/Lib.
Artikel ini adalah contoh proyek yang dapat diunduh dalam lampiran di akhir artikel.
Contoh 1
Contoh paling sederhana adalah mengurai permintaan melalui kelas statis servletfileupload. FileitemFactory kelas pabrik akan memproses semua bidang dalam bentuk kelas Mulipart, bukan hanya bidang file. getName () Mendapat nama file, getstring () mendapatkan konten data formulir, dan isFormField () dapat menentukan apakah itu adalah item formulir biasa.
Demo1.html
<Html> <Head> <meta http-equiv = "content-type" content = "text/html; charset = gb18030"> <itement> unggah file </iteme> </head> <body> // harus menjadi data formulir multipart. <form name="myform" action="demo1.jsp" method="post" enctype="multipart/form-data"> Your name: <br> <input type="text" name="name" size="15"><br> File:<br> <input type="file" name="myfile"><br> <br> <input type="submit" name="submit" value="Commit"> </form> </body> </html>
demo1.jsp
<%@ halaman bahasa = "java" contentType = "text/html; charset = gb18030" pageEncoding = "gb18030"%> <%@ page impor = "org.apache.commons.fileupload.*"%> <%page impor = "org.apache.commons.fileup. Impor = "org.apache.commons.fileupload.disk.*"%> <%@ page impor = "java.util.*"%> <! Doctype html public "-// w3c // dtd html 4.01 transisi // en"> <%boolean ismultipart = servleton; servletonmult. adalah data formulir multipart. if (isMultipart == true) {FileItemFactory factory = new DiskFileItemFactory (); // Buat objek DiskFileItemFactory untuk permintaan dan parsing permintaan melalui itu. Setelah parsing dieksekusi, semua item formulir disimpan dalam daftar. SERVLETFILEUPLOAD UEDLOAD = SERVLETFILEUPLOAD baru (pabrik); Daftar <FILEITEM> item = unggah.ParSeRequest (permintaan); Iterator <FILEItEM> ITR = items.iterator (); while (itr.hasnext ()) {fileItem item = (fileItem) itr.next (); // Periksa apakah proyek saat ini adalah proyek formulir normal atau file unggahan. if (item.isFormField ()) {// Jika itu adalah item bentuk normal, tampilkan konten formulir. String fieldName = item.getFieldName (); if (fieldname.equals ("name")) // response to type = "text" name = "name" out.print ("Nama bidang adalah" + item.getString ()); // Tampilkan konten formulir. out.print ("<br>"); } else {// Jika mengunggah file, tampilkan nama file. out.print ("Nama file unggah adalah" + item.getName ()); out.print ("<br>"); }}} else {out.print ("Enctype harus multipart/form-data"); }%> <html> <head> <meta http-equiv = "content-type" content = "text/html; charset = gb18030"> <itement> unggah file </iteme> </head> <body> </body> </html> hasil:
nama lapangan isjeff
nama file unggahan ISD:/C Sampel tes bahasa/pertanyaan pekerjaan rumah.rar
Contoh 2
Unggah dua file ke direktori yang ditentukan.
demo2.html
<html> <head> <meta http-equiv = "content-type" content = "text/html; charset = gb18030"> <itement> unggah file </iteme> </ head> <body> <form name = "myForm" Action = "demo2.jsp" Metode = "post" postype = "multipart/formulir =" Demo "Metode" POST "POST" POST "ENCTYPE =" Multipart/FORMFORT = "DEMO2.JSP" POST "POST" POST " name = "myfile"> <br> File2: <br> <input type = "file" name = "myfile"> <br> <br> <input type = "kirim" name = "kirim" value = "commit"> </form> </body> </html>
demo2.jsp
<%@ halaman bahasa = "java" contentType = "text/html; charset = gb18030" pageEncoding = "gb18030"%> <%@ page impor = "org.apache.commons.fileupload.*"%> <%page impor = "org.apache.commons.fileup. import="org.apache.commons.fileupload.disk.*"%><%@ page import="java.util.*"%><%@ page import="java.io.*"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><%String uploadPath="D://temp"; boolean ismultipart = servletfileupload.ismultipartcontent (permintaan); if (isMultipart == true) {coba {fileIteMfactory factory = new diskfileIteMfactory (); SERVLETFILEUPLOAD UEDLOAD = SERVLETFILEUPLOAD baru (pabrik); Daftar <FILEITEM> item = unggah.Parsequest (request); // Dapatkan semua file iterator <FILEItEM> ITR = items.iterator (); while (itr.hasnext ()) {// latih setiap file item = (fileItem) itr.next (); String filename = item.getName (); // Dapatkan nama file, termasuk path if (fileName! = Null) {file fullfile = file baru (item.getName ()); File savedFile = file baru (unggahPath, fullfile.getName ()); item.write (saveDfile); }} out.print ("Unggah sukses"); } catch (Exception e) {E.PrintStackTrace (); }} else {out.println ("Enctype harus multipart/form-data"); }%> <html> <head> <meta http-equiv = "content-type" content = "text/html; charset = gb18030"> <itement> unggah file </iteme> </head> <body> </body> </html> hasil:
Unggah berhasil
Saat ini, Anda dapat melihat dua file yang Anda unggah di bawah "D:/Temp".
Contoh 3
Unggah file ke direktori yang ditentukan dan batasi ukuran file.
demo3.html
<html> <head> <meta http-equiv = "content-type" content = "text/html; charset = gb18030"> <itement> unggah file </iteme> </head> <body> <form name = "myForm" Action = "Demo3.jsp" Method = "post" postype = "Multipart/Formule" Action = "Demo3.jsp" Method = "POST" ENCTYPE = "Multipart/FORMFORT" " name = "myfile"> <br> <br> <input type = "kirim" name = "kirim" value = "commit"> </form> </body> </html>
demo3.jsp
<%@ halaman bahasa = "java" contentType = "text/html; charset = gb18030" pageEncoding = "gb18030"%> <%@ page impor = "org.apache.commons.fileupload.*"%> <%page impor = "org.apache.commons.fileup. import="org.apache.commons.fileupload.disk.*"%><%@ page import="java.util.*"%><%@ page import="java.io.*"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><% File uploadPath = new File ("d: // temp"); // unggah direktori file if (! Unggahpath.exists ()) {unggahpath.mkdirs (); } // file direktori file sementara temppathfile = file baru ("d: // temp // buffer //"); if (! Temppathfile.exists ()) {Temppathfile.mkdirs (); } coba {// Buat pabrik untuk file file berbasis disk DiskFileItemFactory factory = new DiskFileItemFactory (); // atur kendala pabrik pabrik. // atur ukuran buffer, berikut adalah 4KB factory.setrepository (Temppathfile); // Atur Buffer Directory // Buat file baru unggah handler servletfileupload unggah = servletfileupload baru (pabrik); // atur keseluruhan permintaan ukuran kendala unggah.setsizeMax (4194304); // atur ukuran file maksimum, berikut adalah daftar 4MB <FILEItEM> item = unggah.Parsequest (permintaan); // Dapatkan semua file iterator <FILEItEM> i = items.iterator (); while (i.hasnext ()) {fileItem fi = (fileItem) i.next (); String filename = fi.getName (); if (fileName! = null) {file fullfile = file baru (fi.getName ()); File savedFile = file baru (unggahPath, fullfile .getName ()); fi.write (SavedFile); }} out.print ("Unggah sukses"); } catch (Exception e) {E.PrintStackTrace (); }%> <html> <head> <meta http-equiv = "content-type" content = "text/html; charset = gb18030"> <itement> unggah file </iteme> </head> <body> </body> </html> Contoh 4
Gunakan Servlet untuk mengimplementasikan unggahan file.
Unggah.java
paket com.zj.sample; impor java.io.file; impor java.io.ioexception; impor java.util.iterator; impor java.util.list; impor javax.servlet.servletException; impor javax.servlet.http.htpservlet; impor javax.servlet.http.htpservlet; impor javax.servlet.http.htpservlet; javax.servlet.http.httpservletresponse; impor org.apache.commons.fileupload.fileitem; org.apache.commons.fileupload.disk.diskfileItemFactory; import org.apache.commons.fileuLoad.servileuPileUderveUderveUderveUderveUderveUderveUderveUderveUderveUder; @SuppressWarnings ("Serial") Upload kelas publik memperluas httpservlet {private string unggahpath = "d: // temp"; // direktori untuk mengunggah file pribadi string temppath = "d: // temp // buffer //"; // file direktori file sementara Temppathfile; @SuppressWarnings ("Uncecked") public void dopost (permintaan httpservletRequest, httpservletResponse response) melempar ioException, servletException {try {// membuat pabrik berbasis disk (factore diskfileitemfactory (factore baru (// new diskfileitem (DiskfileItem (New DiskfileItem (DiskfileItem (New DiskfileItem (DiskfileItem (New DiskfileItem (DiskfileItem (New DiskfileItem (DiskfileItem (New DiskfileItem (DISKFILE. // atur kendala pabrik pabrik. // atur ukuran buffer, berikut adalah 4KB factory.setrepository (Temppathfile); // Atur Buffer Directory // Buat file baru unggah handler servletfileupload unggah = servletfileupload baru (pabrik); // atur keseluruhan permintaan ukuran kendala unggah.setsizeMax (4194304); // atur ukuran file maksimum, berikut adalah daftar 4MB <FILEItEM> item = unggah.Parsequest (permintaan); // Dapatkan semua file iterator <FILEItEM> i = items.iterator (); while (i.hasnext ()) {fileItem fi = (fileItem) i.next (); String filename = fi.getName (); if (fileName! = null) {file fullfile = file baru (fi.getName ()); File savedFile = file baru (unggahPath, fullfile.getName ()); fi.write (SavedFile); }} System.out.print ("Unggah Sukses"); } catch (Exception e) {// halaman kesalahan dapat dilompati e.printstacktrace (); }} public void init () melempar servletException {file unggahfile = file baru (unggahPath); if (! unggahfile.exists ()) {unggahfile.mkdirs (); } File TemppathFile = file baru (Temppath); if (! Temppathfile.exists ()) {Temppathfile.mkdirs (); }}} demo4.html
<html> <head> <meta http-equiv = "content-type" content = "text/html; charset = gb18030"> <itement> unggah file </iteme> </head> <body> // action = "Fileupload" sesuai dengan pengaturan <ruml-pola-pola> di <servlet-mapping> di Web.-spotpl. <Form name = "myForm" Action = "Fileupload" Method = "POST" ENCTYPE = "Multipart/Form-Data"> File: <br> <input type = "file" name = "myfile"> <br> <br> <input type = "kirim" name = "kirim" value = "commit"> </Form> </body> htm
Web.xml
<servlet> <servlet-name> Unggah </servlet-name> <servlet-class> com.zj.sample.upload </servlet-class> </servlet> <servlet-papping> <servlet-name> unggah </servlet-name> <rerl-pattern>/fileupload </url-pattern> </servlet-mapping>
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.