Téléchargement de fichiers JSP & Exemples de programmes de téléchargement de fichiers

Table des matières:

Anonim

Dans cet exemple, nous allons en savoir plus sur le téléchargement et le téléchargement d'un fichier via JSP.

La sortie d'entrée de fichier est une opération très importante. Ici, nous allons lire et écrire un fichier en utilisant JSP.

Téléchargement de fichier JSP

  • Nous pouvons télécharger tous les fichiers en utilisant JSP.
  • Il peut s'agir d'un fichier texte, d'un fichier binaire, d'un fichier image ou de tout autre document.
  • Ici, en cas de téléchargement de fichiers, seule la méthode POST sera utilisée et non la méthode GET.
  • L'attribut Enctype doit être défini sur multipart / form-data.

Exemple: utilisation de l'action

Dans cet exemple, nous téléchargeons un fichier à l'aide d'un objet IO

Action_file.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Fichier Guru  Téléchargement de fichiers Guru: Sélectionnez le fichier:

Action_file_upload.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. *, java.util. *, javax.servlet. *"%><% @ page import = "javax.servlet.http. *"%><% @ page import = "org.apache.commons.fileupload. *"%><% @ page import = "org.apache.commons.fileupload.disk. *"%><% @ page import = "org.apache.commons.fileupload.servlet. *"%><% @ page import = "org.apache.commons.io.output. *"%> Téléchargement de fichier Guru <%Fichier fichier;int maxFileSize = 5000 * 1024;int maxMemSize = 5000 * 1024;String filePath = "E: / guru99 / data";String contentType = request.getContentType ();if ((contentType.indexOf ("multipart / form-data")> = 0)) {DiskFileItemFactory factory = nouveau DiskFileItemFactory ();factory.setSizeThreshold (maxMemSize);factory.setRepository (nouveau fichier ("c: \\ temp"));ServletFileUpload upload = nouveau ServletFileUpload (usine);upload.setSizeMax (maxFileSize);essayer{Liste fileItems = upload.parseRequest (demande);Iterator i = fileItems.iterator ();out.println ("");out.println ("");tandis que (i.hasNext ()){FileItem fi = (FileItem) i.next ();if (! fi.isFormField ()) {Chaîne fieldName = fi.getFieldName ();String fileName = fi.getName ();booléen isInMemory = fi.isInMemory ();long sizeInBytes = fi.getSize ();file = nouveau fichier (filePath + "yourFileName");fi.write (fichier);out.println ("Nom du fichier téléchargé: + chemin_fichier + nom_fichier + "
");}}out.println ("");out.println ("");} catch (Exception ex) {System.out.println (ex);}}autre{out.println ("");out.println ("");out.println ("

Aucun fichier téléchargé

");out.println ("");out.println ("");}%>

Explication du code:

Action_file.jsp

Ligne de code 12-18: Ici, nous créons un formulaire avec un champ de fichier, qui téléchargera le fichier sur le serveur et l'action sera transmise à action_file_upload.jsp

Action_file_upload.jsp

Ligne de code 20: Ici, nous donnons le chemin du fichier vers un chemin particulier

Ligne de code 23-38: Ici, nous vérifions si le type de contenu est multipart / form-data. Si tel est le cas, le contenu est de type fichier et il est lu. Une fois le fichier lu, il est écrit dans le fichier temporaire, puis le fichier temporaire est converti en fichier principal.

Lorsque vous exécutez le code ci-dessus, vous obtenez la sortie suivante

Production:

Nous téléchargeons le fichier en utilisant l'option de bouton de sélection de fichier et le bouton de téléchargement de fichier téléchargera le fichier sur le serveur vers le chemin fourni.

Exemple: utilisation des opérations JSP

Dans cet exemple, nous allons télécharger un fichier à l'aide d'opérations JSP.

Nous prendrons un formulaire qui aura un bouton "upload" et lorsque vous cliquerez sur le bouton upload, le fichier sera téléchargé.

Uploading_1.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru Uploading File Fichier:

Explication du code:

Ligne de code 11-12: Nous prenons ici un formulaire qui a une action sur la servlet guru_upload qui passera par une méthode POST. Aussi, ici nous enctype ie attribut qui spécifie comment les données du formulaire doivent être encodées et envoyées au serveur et il n'est utilisé qu'avec la méthode POST. Ici, nous définissons comme multipart / form-data qui est pour le fichier (car les données seront volumineuses).

Ligne de code 13: Ici, nous spécifions l'élément guru_file avec le type file et donnons une taille de 50.

Ligne de code 15: Il s'agit d'un bouton de type de soumission avec le nom "Upload" sur lequel le servlet d'action sera appelé et la demande sera traitée dans celui-ci et le fichier sera lu et écrit dans le servlet.

Guru_upload.java

package demotest;import java.io.File;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;La classe publique guru_upload étend HttpServlet {private static final long serialVersionUID = 1L;public guru_upload () {super();// TODO Stub de constructeur généré automatiquement}protected void doPost (requête HttpServletRequest, réponse HttpServletResponse) lève ServletException, IOException {if (ServletFileUpload.isMultipartContent (requête)) {essayer {List  multiparts = new ServletFileUpload (nouveau DiskFileItemFactory ()). ParseRequest (request);for (élément FileItem: multiparts) {if (! item.isFormField ()) {Nom de la chaîne = nouveau fichier (item.getName ()). GetName ();item.write (nouveau fichier ("c: / guru / upload" + File.separator + nom));}}// Fichier téléchargé avec succèsrequest.setAttribute ("gurumessage", "Fichier téléchargé avec succès");} catch (Exception ex) {request.setAttribute ("gurumessage", "Le téléchargement du fichier a échoué en raison de" + ex);}}autre{request.setAttribute ("gurumessage", "Aucun fichier trouvé");}request.getRequestDispatcher ("/ result.jsp"). forward (demande, réponse);}}

Explication du code:

Ligne de code 12-14: Ici, nous devrons importer la bibliothèque org.apache.commons dans la configuration du code. Nous devrons importer la classe fileupload de la bibliothèque org.apache.commons.

Ligne de code 23: Ici, nous avons la méthode doPost (), qui sera appelée lorsque nous passons la méthode POST dans JSP et elle demandera et répondra aux objets en tant que paramètres

Ligne de code 26: Ici, nous créons un objet de la classe ServletFileUpload à partir du package fileUpload de la bibliothèque org.apache.commons qui vérifiera s'il y a des objets fichier dans JSP. S'il en est trouvé, ces objets de fichier seront extraits de la demande.

Ligne de code 27-32: Nous allons itérer le nombre de fichiers en vérifiant combien d'éléments de fichier sont présents dans l'objet multipart qui est un objet de liste (si nous téléchargeons plus d'un fichier) et l'enregistrer dans le dossier c: / guru / upload avec le nom de fichier qui a été fourni. Nous écrivons le fichier en utilisant la méthode d'écriture de l'objet fichier dans le dossier qui a été mentionné.

Ligne de code 34: S'il n'y a pas d'exception, nous définissons l'attribut dans la requête comme gurumessage avec la valeur "Fichier téléchargé avec succès".

Ligne de code 35-36: si une exception se produit, le message de configuration "Échec du téléchargement du fichier"

Ligne de code 40: Si le fichier est introuvable, définissez le message comme "Aucun fichier trouvé"

Ligne de code 42: transfert de la demande à l'aide de l'objet requestdispatcher vers result.jsp avec les objets de demande et de réponse.

Result.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Résultat Guru <% String msg = (String) request.getAttribute ("message");out.println (msg);%>

Explication du code:

Ligne de code 10: Ici, nous obtenons l'attribut de l'objet de requête avec la valeur gurumessage dans un objet chaîne.

Code Line11: Ici, nous imprimons ce message.

Lorsque nous exécutons le code ci-dessus, nous obtenons la sortie suivante

Production:

Nous obtenons un formulaire dans lequel il y a des champs pour choisir un fichier dans le répertoire. Une fois le fichier sélectionné, nous devons cliquer sur le bouton de téléchargement.

Une fois que le bouton de téléchargement est cliqué, nous obtenons le message que le fichier est téléchargé avec succès.

Dans le diagramme ci-dessous, nous pouvons voir que le fichier a été téléchargé dans le dossier c: / guru / upload.

Téléchargement du fichier:

Dans cet exemple, nous allons télécharger un fichier depuis un répertoire en cliquant sur le bouton.

Téléchargement_1.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Téléchargement de l'exemple Guru Guru Téléchargement du fichier  Téléchargez ici !!! 

Explication du code:

Ligne de code 10: Ici, nous avons donné un lien pour télécharger un fichier à partir du dossier c: / guru / upload en utilisant le servlet guru_download.

Guru_download.java

package demotest;import java.io.FileInputStream;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/ *** Classe d'implémentation de servlet guru_download* /La classe publique guru_download étend HttpServlet {private static final long serialVersionUID = 1L;protected void doGet (requête HttpServletRequest, réponse HttpServletResponse) lève ServletException, IOException {response.setContentType ("texte / html");PrintWriter out = response.getWriter ();String gurufile = "test.txt";Chaîne gurupath = "c: / guru / upload /";response.setContentType ("APPLICATION / OCTET-STREAM");response.setHeader ("Content-Disposition", "pièce jointe; filename = \" "+ gurufile + "\" ");FileInputStream fileInputStream = nouveau FileInputStream (gurupath+ gurufile);int i;while ((i = fileInputStream.read ())! = -1) {out.write (i);}fileInputStream.close ();out.close ();}/ *** @see HttpServlet # doPost (requête HttpServletRequest, réponse HttpServletResponse)* /protected void doPost (requête HttpServletRequest, réponse HttpServletResponse) lève ServletException, IOException {// TODO Stub de méthode généré automatiquement}}

Explication du code:

Ligne de code 3-5: Ici, nous importons FileInputStream, IO Exception et PrintWriter à partir du package java.io.

Ligne de code 15: Nous définissons le servlet guru_download qui étend HttpServlet.

Ligne de code 18: Comme nous avons défini un href, qui sera inclus dans l'URL, la méthode GET sera traitée (doGet sera appelé dans le servlet) qui englobe également les objets de requête et de réponse.

Ligne de code 19-20: Nous définissons le type de contenu dans l'objet de réponse et obtenons également l'objet d'écriture à partir de la réponse.

Ligne de code 21-22: Définition d'une variable comme gurufile comme valeur test.txt et gurupath comme c: / guru / upload /

Ligne de code 23-25: Nous définissons le type de contenu à l'aide de l'objet de réponse et nous utilisons la méthode setHeader qui définit l'en-tête dans l'objet de réponse comme nom de fichier qui a été téléchargé.

Code Line 27-28: Nous créons FileInputStream dans lequel nous ajouterons gurupath + gurufile.

Ligne de code 31-33: Ici, nous avons pris une boucle while qui fonctionnera jusqu'à ce que le fichier soit lu, par conséquent nous avons donné la condition comme! = -1. Dans cette condition, nous écrivons en utilisant l'objet printwriter out.

Lorsque vous exécutez le code ci-dessus, vous obtiendrez la sortie suivante

Production:

Production:

Nous devons cliquer sur download_1.jsp nous obtiendrons un lien hypertexte comme "Télécharger ici". Lorsque vous cliquez sur ce fichier de lien hypertexte, il sera téléchargé dans le système.

Résumé:

  • Nous avons appris le formulaire d'inscription pour vous inscrire à n'importe quelle application
  • En savoir plus sur le fonctionnement des formulaires de connexion et de déconnexion.
  • Également appris sur le téléchargement et le téléchargement d'un fichier via JSP.