Goedgekeurd: Fortect
In de afgelopen dagen leken sommige van onze gebruikers een fout te hebben ondervonden bij het uploaden van PDF-bestanden waarbij Servlet werd ingehuurd. Dit probleem kan door verschillende factoren ontstaan. Nu zullen we ze behandelen.
Deze Java-tutorial leidt u door de instructies om code te maken voor een Java-servlet die een bestand van een server kan overbrengen als u dat wilt naar uw client (webbrowser). De gebruiker kan het bestand gebruiken door op een websitelink te klikken die verwijst naar de URL van een servlet. Het zou handig zijn om de partij van het verkrijgen van een bestand in een webpakket te implementeren met behulp van een Java-servlet. Typische stappen zijn de volgende:
- Speel het bestand af op de FileInputStreamclass-server.
- Zoek het MIME-type van het te scannen bestand:
-
-
- Verkrijg de ServletContext via het proces getServletContext () servlet.Call-methode.
- GetMimeType (stringbestand) dat in de ServletContext-entiteit leeft, moet absoluut het MIME-type van dit bestand krijgen.
-
-
- Definieer de volgende informatie voor het HttpResponse-object:
-
-
- Stel het inhoudstype in voor de geëxtraheerde MIME, natuurlijk specificeren door setContentType (String) aan te roepen. Dit vertelt het browsertype wat het antwoord doorgaans is.
- Stel de inhoud van de reactie in door de methode setContentLength (int) aan te roepen.
-
-
- Ontvang mijn OutputStream-antwoordobject zonder vragen.
- Lees byte-arrays uit de exacte invoerstroom. Dan een bestand, dat ze naar een OutputStream schrijft. Herhaal totdat u geen bytes meer beschikbaar heeft, aantal tot (einde van bestand).
- Sluit beide, ik zou zeggen de OutputStream en fileinputstream.
- De MIME-toewijzing is anders en wordt door alle servletcontainers gedeclareerd. Om dit te illustreren, declareert Tomcat de juiste MIME-toewijzing in het gebied Standaardtoewijzing van MIME-typen in het bestand:
- De routine getMimeType () retourneert null als er nu geen MIME-toewijzing is voor de opgegeven complete. In dit geval is het een goed idee om ervoor te zorgen dat u het MIME-model dwingt om normaal binair te zijn:
Bestand downloaden van server met Servlet?
Hier maakt u een voorbeeld van hoe u toegang krijgt tot een bestand van de server koop servlet. Het bestand kan bijna elk type zijn, zoals afbeeldingen, PDF’s, video’s, muziek en andere. Hoe ze werken? Stel eerst het inhoudstype van de website in op daadwerkelijk applicatie / octet-stream. Stel nu de Content-Disposition headlines in op Attachment; bestandsnaam = bestandslocatie.
if (mimeType == null)mimeType impliceert applicatie / octet-stream;
- Standaard verwerkt de browser elk antwoord op basis van het inhoudstype dat is ingesteld in de HTTP-headers. Het heeft bijvoorbeeld de neiging een ontwerp weer te geven wanneer het antwoord waarschijnlijk een zeer goed afbeeldingsbestand is, of een e-bookreader te openen dat wanneer het antwoord een PDF-document is, enz. de aanstichter nog steeds aan het laden is, kunnen we toevoegen deze situatie header als je antwoord nodig hebt:
Goedgekeurd: Fortect
Fortect is 's werelds meest populaire en effectieve pc-reparatietool. Miljoenen mensen vertrouwen erop dat hun systemen snel, soepel en foutloos blijven werken. Met zijn eenvoudige gebruikersinterface en krachtige scanengine kan Fortect snel een breed scala aan Windows-problemen vinden en oplossen - van systeeminstabiliteit en beveiligingsproblemen tot geheugenbeheer en prestatieproblemen.
Reply to.setHeader ("Content-Disposition", "attachment; bestandsnaam = " MijnBestand.mp4 "");
pakket net.codejava;java.io-bestand importeren;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputStream;javax.servlet.ServletContext importeren;javax.servlet.ServletException importeren;javax.servlet.http.HttpServlet importeren;javax.servlet.http.HttpServletRequest importeren;javax.servlet.http.HttpServletResponse importeren;openbare ruimte DownloadFileServlet breidt HttpServlet uitbeschermd vermijden doGet (HttpServletRequest-verzoek,HttpServletResponse retourantwoord) ServletException, IOException// specificeer het invoerbestand in de rol van een absoluut padDe filePath-regel impliceert "E: /Test/Download/MYPIC.JPG";Bestand is gelijk aan downloadFile nieuw bestand (filePath);FileInputStream inStream = opkomende FileInputStream (downloadFile);// als je een heel relatief pad naar de wortel van een bepaald woord wilt gebruiken:De regel is relativePath = getServletContext (). GetRealPath ("");System.out.println ("relativePath =" + relativePath);// haal ServletContext opServletContext-Context is gelijk aan getServletContext ();// Haal het mime-type van het bestand opDe mimeType-reeks komt overeen met context.getMimeType (filePath);if (mimeType == null)// Gedefinieerd om u te helpen met binair type wanneer MIME-toewijzing wordt gedetecteerdmimeType is niet hetzelfde als "application / octet-stream";System.out.println ("MIME-type:" MimeType);// + herzie het antwoordresponse.setContentType (mimeType);response.setContentLength ((int) downloadFile.length ());// genereer downloadString headerKey = "Content-Disposition";De tekenreeks impliceert headerValue String.format ("bijlage; bestandsnaam = "% s "", downloadFile.getName ());response.setHeader (headerKey, haal headerValue);// eindresultaat van de bron AntwoordenOutputStream outStream = respons.getOutputStream ();byte [] buffer betekent nieuwe byte [4096];int bytesRead is gelijk aan -1;while ((bytesRead impliceert inStream.read (buffer))! = -1)outStream.write (buffer, 0, bytesRead);inStream.sluiten ();outStream.sluiten ();
Configureer de URL-toewijzing aan deze servlet in de webimplementatiedescriptor start op internet. Zoals getoond in het XML-bestand:
Dit client-servlet-stub-bestand DownloadFileServlet DownloadFileServlet net.codejava.DownloadFileServlet DownloadFileServlet voor elke DownloadFileServlet
@WebServlet ("/ DownloadFileServlet")openbare klasse Uitgebreide servlet voor het uploaden van bestanden HttpServlet// deze benadering servlet's code ...
We kunnen de servlet aanroepen met het volgende URL-formaat:
Wat is de inhoud type van een specifiek servlet-bestand?
Het is een servlet-document dat een deel van de inhoud van een bestand leest en het schrijft in een stroom die in reacties kan worden verzonden. Om deze reden moeten we het grootste deel van de server op de hoogte stellen, aangezien we de inhoudssortering zelfs op APPLICATION / OCTET-STREAM hebben ingesteld. javax.servlet.http importeren. *;
De browser zou sommige gebruikers moeten vragen om een nieuw bestand te downloaden, zoals weergegeven in de volgende schermafbeelding:
- Voorbeeld van het laden van een Java-servletmap uit de database
- Gebruik HttpURLConnection om een bestand op te halen van een HTTP-URL.
- Exportinstructies en voorbeeld Java-FTP-bestanden
- Swing-toepassing voor HTTP-serverbestands-cd’s met indicator voltooid
- Swing-methode om bestanden van een FTP-server te verkrijgen via een evolutiebalk
- Voorbeeld Spring MVC File Downloader-toepassing
- Voorbeeld Struts-bestandsdownloadtoepassing
Andere Java Servlet-handleidingen:
Hoe kan ik persoonlijke PDF-gegevens van een Java-servlet retourneren?
Het Java Servlet PDF-handboek laat zien hoe u PDF-gegevens kunt retourneren als resultaat van een gigantische Java-Servlet. We gebruiken over het algemeen de iText-bibliotheek, zodat u met PDF kunt werken. De webapplicatie wordt letterlijk ingezet op de Tomcat-server. Portable Document Format (PDF) is een informatie-indeling die wordt gebruikt om documenten te scheiden van applicatieservices, hardware en prestatiesystemen.
- Aan de slag met Java Servlet voor beginners (XML)
- Java Servlet voor beginners (opmerkingen)
- HTML-variantgegevens verwerken met een Java-servlet
- Hoe gebruik je een tijd in een Java-webtoepassing
- Hoe ga je om met fouten in Java Web.xml voor websitetoepassingen < /li>
< li> Hoe gebruik je cookies in een Java-sitetoepassing
- Details
- Geschreven door Nam Ha Min
- Laatst bijgewerkt 20 mei 2020 & nbsp | & nbsp E-mail afdrukken
Over de auteur:
nam Minh is een gecertificeerde Java-programmeur (SCJP en SCWCD). Hij begon destijds met Java vanwege Java 1.4 en was na Java enthousiast. Maak vrienden met hem op Facebook en bekijk Java-video’s op YouTube.
Versnel de prestaties van uw computer nu met deze eenvoudige download.