Cet article utilise des exemples pour introduire comment utiliser Commons-fileupload.jar. Commons-fileupload.jar d'Apache pour faciliter la fonction de téléchargement des fichiers. Le contenu spécifique est le suivant
Placez Commons-fileupload.jar d'Apache sous Web-Inf / lib dans l'application et il est prêt à l'emploi. L'exemple suivant montre comment utiliser sa fonction de téléchargement de fichiers.
La version Fileupload utilisée est 1.2 et l'environnement est Eclipse3.3 + MyEClipse6.0. FileUpload est basé sur les communes IO, donc avant d'entrer dans le projet, déterminez le package JAR de Commons IO (en utilisant Commons-io-1.3.2.jar dans cet article) sous Web-Inf / Lib.
Cet article est un exemple de projet qui peut être téléchargé dans la pièce jointe à la fin de l'article.
Exemple 1
L'exemple le plus simple est d'analyser la demande via la classe statique de servletFileUpload. La classe d'usine FileItemFactory traitera tous les champs sous la forme de la classe MuLIpart, pas seulement des champs de fichiers. getName () obtient le nom du fichier, getString () obtient le contenu des données du formulaire et iSformField () peut déterminer s'il s'agit d'un élément de formulaire ordinaire.
Demo1.html
<Html> <A-head> <meta http-equiv = "contenu-type" contenu = "text / html; charset = gb18030"> <tight> upload de fichier </title> </ head> <body> // doit être des données de formulaire multipart. <form name = "myform" action = "demo1.jsp" méthode = "post" enctype = "multipart / form-data"> Votre nom: <br> <entrée type = "text" name = "name" size = "15"> <br> file: <br> <entrée type = "file" name = "myfile"> <br> <bout type = "soumettre" nom = "soumettre" value = "valide"> </ form> </body> </html>
démo1.jsp
<% @ page Language = "Java" contentType = "Text / Html; charSet = GB18030" Pageencoding = "GB18030"%> <% @ Page Import = "org.apache.commons.fileupload."%> <% @ page import = "org.apache.commons.fileupload.Servert. import = "org.apache.commons.fileupload.disk. *"%> <% @ page import = "java.util. *"%> <! doctype html public "- // w3c // dtd html 4.01 transitional // en"> <% boolean ismulTart = ServletFileupload.ismultipartContent (demande); Données de formulaire en multiparant. if (isMultipartipart == true) {fileItemfactory factory = new DiskFileItemFactory (); // Créez un objet DiskFileItemFactory pour la demande et analysez la demande par le biais de celui-ci. Une fois l'analyse exécutée, tous les éléments de formulaire sont enregistrés dans une liste. ServletFileUpload upload = new ServletFileUpload (Factory); List <FeleItem> items = upload.parseRequest (request); Iterator <FichierItem> iTr = items.Itator (); while (ir.hasnext ()) {fileItem item = (fileItem) itr.next (); // Vérifiez si le projet actuel est un projet de formulaire normal ou un fichier de téléchargement. if (item.isformField ()) {// S'il s'agit d'un élément de formulaire normal, affichez le contenu du formulaire. String fieldName = item.getFieldName (); if (fieldname.equals ("name")) // réponse à type = "text" name = "name" out.print ("le nom de champ est" + item.getString ()); // affiche le contenu du formulaire. Out.print ("<br>"); } else {// S'il télécharge un fichier, affichez le nom du fichier. out.print ("Le nom de fichier de téléchargement est" + item.getName ()); Out.print ("<br>"); }}} else {out.print ("L'encType doit être multipart / forme-data"); }%> <html> <éadfride> <méta http-equiv = "contenu-type" contenu = "text / html; charset = gb18030"> <ititle> upload </title> </ head> <body> </ body> </html> résultat:
Le nom de champ Isjeff
le nom de fichier de téléchargement ISD: / c Test de langue Exemple / Devoirs Questions.rar
Exemple 2
Téléchargez deux fichiers dans le répertoire spécifié.
démo2.html
<html> <éad- head> <meta http-equiv = "contenu-type" contenu = "text / html; charset = gb18030"> <ititle> upload </title> </ head> <body> <form name = "myform" Action = "Demo2.jsp" méthode = "post" encype = "multipart / form-data"> file1: <brackSy) name = "myFile"> <br> file2: <br> <input type = "file" name = "myfile"> <br> <br> <input type = "soumi" name = "soumi" value = "commit"> </ form> </ body> </html>
démo2.jsp
<% @ page Language = "Java" contentType = "Text / Html; charSet = GB18030" Pageencoding = "GB18030"%> <% @ Page Import = "org.apache.commons.fileupload."%> <% @ page import = "org.apache.commons.fileupload.Servert. 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"; booléen isMultupart = servletFileupload.ismulTipartContent (demande); if (IsMultupart == true) {try {fileItemfactory factory = new DiskFileItemFactory (); ServletFileUpload upload = new ServletFileUpload (Factory); List <FeleItem> items = upload.parseRequest (request); // obtenez tous les fichiers iterator <FequeItem> iTr = items.Itorator (); while (ir.hasnext ()) {// Train chaque élément de fichier = (fileItem) itr.next (); String filename = item.getName (); // Obtenez le nom du fichier, y compris le chemin if (filename! = Null) {file fullfile = new File (item.getName ()); Fichier SAVEDFILE = nouveau fichier (uploadPath, fullfile.getName ()); item.Write (SavedFile); }} out.print ("téléchargement succédure"); } catch (exception e) {e.printStackTrace (); }} else {out.println ("L'encType doit être multipart / form-data"); }%> <html> <éadfride> <méta http-equiv = "contenu-type" contenu = "text / html; charset = gb18030"> <ititle> upload </title> </ head> <body> </ body> </html> résultat:
Télécharger Succeed
Pour le moment, vous pouvez voir les deux fichiers que vous avez téléchargés sous "D: / Temp".
Exemple 3
Téléchargez un fichier dans le répertoire spécifié et limitez la taille du fichier.
démo3.html
<html> <éad- head> <meta http-equiv = "contenu-type" contenu = "text / html; charset = gb18030"> <itle> upload </ title> </ head> <body> <form name = "myform" Action = "Demo3.jsp" méthode = "post" encype = "multipart / form-data"> file: <brysy = "fichier =" fichier ">" fichier "fichier" fichier: "File =" File = "Fidre) name = "myFile"> <br> <br> <input type = "soumi" name = "soumi" value = "commit"> </ form> </body> </html>
démo3.jsp
<% @ page Language = "Java" contentType = "Text / Html; charSet = GB18030" Pageencoding = "GB18030"%> <% @ Page Import = "org.apache.commons.fileupload."%> <% @ page import = "org.apache.commons.fileupload.Servert. 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 uploadpathpath html 4.01 transitional / en "> <% file uploadpathPath File ("d: // temp"); // télécharger le répertoire de fichier if (! UploadPath.exists ()) {uploadPath.mkDirs (); } // Fichier de fichiers temporaire Fichier TEMPPATHFILE = nouveau fichier ("d: // temp // buffer //"); if (! temppathfile.exists ()) {temppathfile.mkDirs (); } essayez {// Créer une usine pour les éléments de fichier basés sur le disque DiskFileItemFactory Factory = new DiskFileItemFactory (); // Set Factory Contraintes Factory.SetSizethReshold (4096); // Définir la taille du tampon, voici 4KB factory.setRepository (TemPPathFile); // Définir le répertoire de tampon // Créer un nouveau gestionnaire de téléchargement de fichiers ServletFileUpload upload = new ServletFileUpload (Factory); // Définit la contrainte de taille de demande globale upload.setSizEMax (4194304); // Définit la taille du fichier maximum, voici 4 Mo List <FichierItem> items = upload.parseRequest (request); // Obtenez tous les fichiers Iterator <FichierItem> i = items.iterator (); while (i.hasnext ()) {fileItem fi = (fileItem) i.next (); String filename = fi.getName (); if (filename! = null) {file fullfile = new File (fi.getName ()); Fichier savedFile = nouveau fichier (uploadPath, fullfile .getName ()); fi.write (SavedFile); }} out.print ("téléchargement succédure"); } catch (exception e) {e.printStackTrace (); }%> <html> <éadfride> <méta http-equiv = "contenu-type" contenu = "text / html; charset = gb18030"> <ititle> upload </title> </ head> <body> </ body> </html> Exemple 4
Utilisez Servlet pour implémenter le téléchargement de fichiers.
Upload.java
package com.zj.sample; Importer java.io.file; import java.io.ioexception; import java.util.iterator; import java.util.list; import javax.servlet.servletException; import javax.servlet.httpservletRevlet; Importer javax.servlet.http.httpservletRequest; Importer; javax.servlet.http.httpservletResponse; import org.apache.commons.fileupload.fileitem; import org.apache.commons.fileupload.disk.diskfileitemfactory; import org.apache.commons.fileupload.servlet.servletfileupload; @SuppressWarnings ("Serial") La classe publique Téléchargement étend httpServlet {private String uploadPath = "d: // temp"; // Répertoire de téléchargement de fichiers String privé temppath = "d: // temp // buffer //"; // Fichier de fichiers temporaire TEMPPATHFILE; @SuppressWarnings ("non coché") public void doPost (requête httpservletRequest, réponse httpservletResponse) lance ioexception, servlexception {try {// créer une usine pour les éléments de fichiers disque diskfileitemfactory factory = new diskfileitemfactory (); // Set Factory Contraintes Factory.SetSizethReshold (4096); // Définir la taille du tampon, voici 4KB factory.setRepository (TemPPathFile); // Définir le répertoire de tampon // Créer un nouveau gestionnaire de téléchargement de fichiers ServletFileUpload upload = new ServletFileUpload (Factory); // Définit la contrainte de taille de demande globale upload.setSizEMax (4194304); // Définit la taille du fichier maximum, voici 4 Mo List <FichierItem> items = upload.parseRequest (request); // Obtenez tous les fichiers Iterator <FichierItem> i = items.iterator (); while (i.hasnext ()) {fileItem fi = (fileItem) i.next (); String filename = fi.getName (); if (filename! = null) {file fullfile = new File (fi.getName ()); Fichier SAVEDFILE = nouveau fichier (uploadPath, fullfile.getName ()); fi.write (SavedFile); }} System.out.print ("Télécharger Successed"); } catch (exception e) {// La page d'erreur peut être sautée e.printStackTrace (); }} public void init () lève Servlexception {file uploadFile = new File (uploadPath); if (! uploadFile.exists ()) {uploadFile.mkDirs (); } Fichier temppathfile = nouveau fichier (temppath); if (! temppathfile.exists ()) {temppathfile.mkDirs (); }}} Demo4.html
<html> <éad- head> <meta http-equiv = "contenu-type" contenu = "text / html; charset = gb18030"> <ititle> upload </title> </ad> <body> // action = "fileupload" correspond au paramètre de <url-sternal> dans <serplet-mapping> dans Web.xml. <formulaire name = "myform" action = "fileupload" metheth = "post" enctype = "multipart / form-data"> file: <br> <input type = "file" name = "myfile"> <br> <br> <input type = "name =" soumed "value =" commit "> </ form> </body> </html>
web.xml
<VerTlet> <Servlet-Name> upload </vrlett-name> <servlet-class> com.zj.sample.upload </ servlet-class> </vrlet> <servlet-mapping> <Servlet-name> upload </vrlet-name> <Url-Pattern> / fileupload </url-Pattern> </servlet-mapping>
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.