Approuvé : Fortect
Au cours des derniers jours, certains de nos utilisateurs ont rencontré à un moment donné une erreur lors du téléchargement de fichiers PDF Servlet. Ce problème peut survenir pour plusieurs très bonnes raisons. Nous allons maintenant nous en occuper.
Ce didacticiel Java vous guide à travers les pratiques de création de code pour une servlet Java qui transfère notamment un fichier à partir d’un serveur qui serait votre client (navigateur Web). L’utilisateur peut trouver le fichier en cliquant sur la page Web d’un site Web qui pointe vers l’URL de la servlet habituellement. Il serait utile d’implémenter le travail d’obtention d’un fichier dans un logiciel Web à l’aide d’une servlet Java. Les étapes typiques sont principalement les suivantes :
- Lire le fichier sur le serveur FileInputStreamclass.
- Trouvez le type MIME du fichier à diriger :
-
-
- Obtenez le ServletContext via le processus getServletContext () servlet.Méthode d’appel.
- Certainement getMimeType (fichier de chaîne) à l’intérieur de l’entité ServletContext pour obtenir le type MIME de ce fichier.
-
-
- Définissez les informations suivantes pour l’objet HttpResponse :
-
-
- Définissez le type de contenu pour le MIME extrait, bien sûr, spécifiez en appelant setContentType (String). Cela indique au type de navigateur quelle est la réponse.
- Définissez le contenu de leur réponse en appelant la méthode setContentLength (int).
-
-
- Obtenez ces objets de réponse OutputStream sans questions.
- Lire les tableaux d’octets à partir du flux d’entrée exact. Puis un fichier, les écrivant dans un OutputStream. Répétez jusqu’à ce que vous n’ayez plus d’octets disponibles, comptez sur (fin du fichier).
- Fermez tous les deux généralement OutputStream et fileinputstream.
- Le mappage MIME est différent, qui est déclaré par le conteneur de servlet principal. Pour illustrer cela, Tomcat déclare le bon mappage MIME dans la zone Mappage par défaut des types MIME du fichier :
- La routine getMimeType() renvoie null s’il n’y a actuellement aucun mappage MIME pour l’enregistrement spécifié. Dans ce cas, c’est une bonne idée sur le marché de s’assurer que vous forcez l’option MIME à normalement binaire :
Comment télécharger le fichier depuis serveur utilisant Servlet ?
Ici, vous créez un exemple de la façon d’accéder à un fichier à partir du servlet d’achat du serveur. Le fichier peut être de presque n’importe quel type, comme une image, un PDF, une vidéo, de la musique et autres. Comment fonctionne le concept ? Tout d’abord, définissez le type de contenu du site Web en retournant à application / octet-stream. Définissez maintenant les balises Content-Disposition h2 sur Attachment ; nom de fichier = emplacement du fichier.
if (mimeType == null)mimeType implique application / octet-stream ;
- Par défaut, le navigateur traite chaque réponse entièrement en fonction du type de contenu défini dans les en-têtes HTTP. Par exemple, il a tendance à afficher une réputation lorsque la réponse est susceptible d’être 1 fichier image, ou à ouvrir un lecteur de livre électronique si la réponse est un document PDF, etc. cet instigateur est toujours en cours de chargement, nous pouvons ajouter cet en-tête étonnant si vous devez répondre :
Approuvé : Fortect
Fortect est l'outil de réparation de PC le plus populaire et le plus efficace au monde. Des millions de personnes lui font confiance pour assurer le fonctionnement rapide, fluide et sans erreur de leurs systèmes. Avec son interface utilisateur simple et son puissant moteur d'analyse, Fortect détecte et corrige rapidement un large éventail de problèmes Windows, de l'instabilité du système et des problèmes de sécurité à la gestion de la mémoire et aux goulots d'étranglement des performances.
Répondre à.setHeader ("Content-Disposition", "pièce jointe; filename = " MyFile.mp4 "");
package net.codejava ;importer le fichier java.io ;importer java.io.FileInputStream ;importer java.io.IOException ;importer java.io.OutputStream ;importer javax.servlet.ServletContext ;importer javax.servlet.ServletException ;importer javax.servlet.http.HttpServlet ;importer javax.servlet.http.HttpServletRequest ;importer javax.servlet.http.HttpServletResponse ;étape publique DownloadFileServlet étend HttpServletprotégé éviter doGet (requête HttpServletRequest,Réponse des déclarations de revenus HttpServletResponse) ServletException, IOException// spécifie le fichier d'entrée même en tant que chemin absoluLa ligne filePath implique "E: /Test/Download/MYPIC.JPG" ;Le fichier est égal à downloadFile nouveau fichier (filePath) ;FileInputStream inStream = absolument nouveau FileInputStream (downloadFile);// si vous voulez utiliser ce chemin simplement relatif à la racine d'un mot fonctionnel :La ligne est relativePath = getServletContext (). GetRealPath ("");System.out.println ("relativePath =" + relativePath);// obtient ServletContextServletContext-Context est égal à getServletContext ();// Récupère le type mime du fichierLa ligne mimeType correspond à context.getMimeType (filePath) ;if (mimeType == null)// Défini pour vous aider avec le type binaire lorsque le mappage MIME est détectémimeType n'est pas le même en raison du fait "application / octet-stream" ;System.out.println ("Type MIME :" TypeMime);// + adapter la réponseréponse.setContentType (mimeType);response.setContentLength ((int) downloadFile.length ());// force téléchargementString headerKey = "Content-Disposition" ;La chaîne implique headerValue String.format ("attachment; filename = "% s "", downloadFile.getName ());response.setHeader (headerKey, get headerValue);// résultat final des réponses actuellesOutputStream outStream = réponse.getOutputStream ();octet [] tampon signifie nouvel octet [4096] ;int bytesRead est égal à -1 ;while ((bytesRead implique inStream.read (buffer))! = -1)outStream.write (tampon, 0, bytesRead);inStream.close ();outStream.close ();
Configurez le mappage d’URL pour intégrer ce servlet dans le fichier de descripteur de déploiement Web pour Internet. Comme indiqué dans le fichier XML :
Ce fichier de raccord de servlet client DownloadFileServlet DownloadFileServlet net.codejava.DownloadFileServlet DownloadFileServlet et DownloadFileServlet
@WebServlet ("/ DownloadFileServlet")classe publique servlet de téléchargement de fichiers étendu HttpServlet// un tel code de servlet ...
Nous pouvons appeler la servlet au format d’URL suivant :
Quel est le contenu type d’un fichier de servlet ?
C’est un document de servlet qui lit le contenu d’un fichier et l’écrit en retournant dans un flux qui peut être envoyé en guise de remède. Pour cette raison, nous devons notifier un serveur particulier car nous définissons même les types de contenu sur APPLICATION / OCTET-STREAM. importer javax.servlet.http. *;
Le navigateur devrait inviter certains utilisateurs à télécharger chacun de nos fichiers, comme illustré dans la capture d’écran suivante :
- Exemple de chargement d’un fichier de servlet Java depuis la base de données
- Utilisez HttpURLConnection pour vous assurer de récupérer un fichier depuis une URL HTTP.
- Instructions d’exportation et exemples de fichiers Java-FTP
- Application Swing pour les CD de fichiers de serveur HTTP avec indicateur terminé
- Méthode Swing pour installer des fichiers à partir d’un serveur FTP via un barre de progression
- Exemple d’application de téléchargement de fichiers Spring MVC
- Exemple d’application de téléchargement de fichiers Struts
Autres guides de servlet Java :
Comment retourner les connaissances PDF depuis une Servlet Java ?
Le manuel Java Servlet PDF vous montre comment renvoyer des données PDF à la suite d’un servlet Java géant. Nous utilisons, je dirais, la bibliothèque iText pour que vous puissiez travailler avec PDF. L’application Web est littéralement déployée sur le serveur Tomcat. Le format de document portable (PDF) est un format de catalogue utilisé pour séparer les documents du système informatique d’application, du matériel et des systèmes de performance.
- Premiers pas avec Java Servlet for Newbies (XML)
- Java Servlet for Beginners (Notes)
- Traitement des données de variante HTML avec un servlet Java
- Comment utiliser les cookies dans une application Java sur Internet
- Comment utiliser un tutoriel dans une application Web Java
- Comment gérer les erreurs dans Java Web.xml pour en ligne candidatures
- Détails
- Écrit par Nam Ha Min
- Dernière mise à jour le 20 mai 2020 & nbsp | & nbsp Imprimer l’e-mail
À propos de l’auteur :
nam Minh est un programmeur Java certifié (SCJP et SCWCD). Il a commencé avec Java à l’époque de Java 1.4 et était enthousiaste après Java. Devenez ami avec lui sur Facebook et regardez des vidéos Java sur YouTube.
Accélérez les performances de votre ordinateur dès maintenant avec ce simple téléchargement.