Il existe actuellement deux méthodes couramment utilisées pour le téléchargement de fichiers, l'une est SmartUpload et l'autre est le fichier Commons d'Apache.
Ici, nous présentons principalement l'utilisation du second. Tout d'abord, vous devez télécharger le fichier et faire attention à plusieurs problèmes:
1 Dans le formulaire de formulaire, ajoutez l'espace <entrée type = "file" name = "myfile">
2 Le format de contenu de la forme de la forme doit être défini comme un format multiparte / forme de format
3 Bibliothèque de classe obligatoire: 1 Commons-io.jar 2 Commons-fileupload-1.3.1.jar
Ensuite, jetons un coup d'œil à l'utilisation.
Tout d'abord, lisez la documentation officielle de la charge de fichiers Apache Commons et vous pouvez trouver les fonctions couramment utilisées suivantes:
1 Créer un objet d'analyse de fichier
La copie de code est la suivante: diskfileupload diskfileupload = new diskfileupload ();
2 Après l'analyse du fichier, mettez-le dans la liste. Étant donné que cette bibliothèque de classe prend en charge plusieurs téléchargements de fichiers, le résultat sera stocké dans la liste.
La copie de code est la suivante: list <FequeItem> list = diskfileupload.parsErequest (request);
3 Fichiers téléchargés et effectuer une analyse (pas nécessaire)
La copie de code est la suivante: File RemoteFile = new File (new String (fileItem.getName (). GetBytes (), "UTF-8"));
4 Créez un nouvel objet et effectuez une copie de streaming
file1 = new File (this.getServletContext (). getRealPath ("pièce jointe"), distotefile.getName ()); file1.getParentFile (). mKDirs (); file1.createenewfile (); InputStream ins = fileItem.getInputStream (); OutputStream OUS = new FileOutputStream (file1); essayez {byte [] buffer = new byte [1024]; int len = 0; while ((len = ins.read (tampon))> -1) OUS.Write (tampon, 0, len); out.println ("pour enregistrer le fichier" + file1.getabsolutepath () + "<br/>"); } Enfin {OUS.Close (); ins.close (); }De cette façon, nous terminons le téléchargement du fichier.
fileupload.html
<form action = "Servlet / uploadServlet" Method = "Post" enctype = "multipart / form-data"> <div align = "Center"> <FielDset> <gend> upload file </ legend> <br/> <div align = "Left"> upload file name = "file1" /> </ div> <div align = "Left"> upload file2 </ div> <div align = "Left"> <input type = "file" name = "file2" /> </ div> <v> <div align = 'Left'> upload file instructions1 </ div> <div align = 'Left'> <input type = "text" name = "description1" /> </ div> <div> <puty type = text "Name =" Description1 " Align = 'Left'> Télécharger le fichier Instructions2 </ div> <div align = 'Left'> <input type = "text" name = "Description2" /> </ div> </ div> <div> <div align = 'Left'> <input type = 'soup' value = "upload file" /> </ div> </fieldsset> </v> </orm>
web.xml
<VerTlet> <Serplet-Name> uploadServlet </vrlet-name> <servlet-class> com.test.hello.uploadservlet </vrlett-class> </ serplet> <servlet-mapping> <servlet-name> uploadServlet </vrlet-name> <url-stepletr> / servlet / uploadServlet </url-platern>
Uploadservlet.java
package com.test.hello; importer java.io.file; import java.io.fileoutputStream; import java.io.ioexception; import java.io.inputstream; import java.util.outStream; importer java.io.printwriter; importation; javax.servlet.http.httpservlet; import javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; org.apache.commons.fileupload.fileUpLadexception; public class uploadServlet étend httpservlet {/ ** * constructeur de l'objet. * / public uploadServlet () {super (); } / ** * Destruction du servlet. <br> * / public void destroy () {super.destroy (); // met juste la chaîne "destruction" dans le journal // Mettez votre code ici} / ** * la méthode doget du servlet. <br> * * Cette méthode est appelée lorsqu'un formulaire a sa méthode de valeur de balise équivaut à obtenir. * * @param demande la demande envoyée par le client au serveur * @param réponse la réponse envoyée par le serveur au client * @throws servlexception si une erreur s'est produite * @throws ioException si une erreur s'est produite * / public void doget (httpservletRequest request, httpservlersponse réponse) throws Servlexception, ioexception {réponse.Setcharactering ("utf."); réponse.getwriter (). println ("Veuillez télécharger le fichier dans Post"); } / ** * La méthode DOSTOST du servlet. <br> * * Cette méthode est appelée lorsqu'un formulaire a sa méthode de valeur de balise équivaut à publier. * * @param demande la demande la demande envoyée par le client au serveur * @param réponse la réponse envoyée par le serveur au client * @throws servlexception si une erreur s'est produite * @throws ioexception si une erreur s'est produite * / @Suppresswarning Servlexception, ioException {file file1 = null, file2 = null; String Description1 = null, Description2 = null; Response.SetcharAtterencoding ("UTF-8"); request.SetcharAtterencoding ("UTF-8"); réponse.setContentType ("Text / HTML"); Printwriter out = réponse.getWriter (); Diskfileupload diskfileupload = new diskfileupload (); essayez {list <FeleItem> list = diskfileupload.parsErequest (request); out.println ("Transférer tous les fichiers ... <br/>"); for (fileItem FileItem: list) {if (fileItem.isformField ()) {if ("Description1" .Equals (fileItem.getFieldName ())) {out.println ("Transfer to Description1 ... <br/>"); Description1 = new String (fileItem.getString (). GetBytes (), "UTF-8"); } if ("description2" .equals (fileItem.getFieldName ())) {out.println ("Travel to Description2 ... <br/>"); Description2 = new String (fileItem.getString (). GetBytes (), "UTF-8"); }} else {if ("file1" .equals (fileItem.getFieldName ())) {file RemoteFile = new File (new String (fileItem.getName (). GetBytes (), "utf-8")); out.println ("Voyager vers File1 ... <br/>"); Out.println ("Emplacement du fichier client:" + RemoteFile.getAbsolutepath () + "<br/>"); file1 = new File (this.getServletContext (). getRealPath ("pièce jointe"), distotefile.getName ()); file1.getParentFile (). mKDirs (); file1.createenewfile (); InputStream ins = fileItem.getInputStream (); OutputStream OUS = new FileOutputStream (file1); essayez {byte [] buffer = new byte [1024]; int len = 0; while ((len = ins.read (tampon))> -1) OUS.Write (tampon, 0, len); out.println ("pour enregistrer le fichier" + file1.getabsolutepath () + "<br/>"); } Enfin {OUS.Close (); ins.close (); }} if ("file2" .equals (fileItem.getFieldName ())) {file RemoteFile = new File (new String (fileItem.getName (). GetBytes (), "utf-8")); out.println ("Voyager vers File2 ... <br/>"); Out.println ("Emplacement du fichier client:" + RemoteFile.getAbsolutepath () + "<br/>"); file2 = new File (this.getServletContext (). getRealPath ("pièce jointe"), distotefile.getName ()); file2.getParentfile (). mKDirs (); file2.CreateEwFile (); InputStream ins = fileItem.getInputStream (); OutputStream ous = new FileOutputStream (file2); essayez {byte [] buffer = new byte [1024]; int len = 0; while ((len = ins.read (tampon))> -1) OUS.Write (tampon, 0, len); out.println ("pour enregistrer le fichier" + file2.getabsolutepath () + "<br/>"); } Enfin {OUS.Close (); ins.close (); }}} out.println ("La analyse de demande est terminée <br/> <br/>"); }} catch (fileUpLoadexception e) {} out.println ("<! doctype html public /" - // w3c // dtd html 4.01 transitional // en / ">"); out.println ("<adread> <itle> un servlet </Title> </A-head>"); out.println ("<porce>"); if (file1! = null) {out.println ("<div>"); out.println ("<div align = 'Left'> file1; </div>"); out.println ("<div align = 'Left'> <a href = '" + request.getContextPath () + "/ pièce jointe /" + file1.getname () + "' cible = _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 () + "/ attachment /" + file2.getName () + "' cible = _blank>" + file2.getname () + "</a>"); out.println ("</div>"); out.println ("</div>"); } out.println ("<v>"); out.println ("<div align = 'Left'> Description1: </div>"); out.println ("<div align = 'Left'>"); out.println (description1); out.println ("</div>"); out.println ("</div>"); out.println ("</div>"); out.println ("<div align = 'Left'> Description2: </div>"); out.println ("<div align = 'Left'> Description2: </div>"); out.println ("<div align = 'Left'>"); out.println ("</div>"); out.println ("</div>"); out.println ("</body>"); out.println ("</html>"); out.flush (); out.close (); } / ** * Initialisation du servlet. <br> * * @throws servlexception Si une erreur se produit * / public void init () lève ServletException {// Mettez votre code ici}}Exemple de course
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.