Godkänd: Fortect
Under de senaste dagarna har några av våra användare upplevt ett fel när de laddar upp PDF-informationsfiler med Servlet. Detta problem kan uppstå av olika anledningar. Nu ska vi ta itu med dem.
Den här Java-handledningen leder dig genom specifika steg för att skapa kod för en Java-servlet som överför en fil från en server för att hjälpa dig med din klient (webbläsare). Användaren kommer ofta att ladda ner filen genom att klicka på en länk som pekar på URL:en till den exakta servleten. Det skulle vara användbart att implementera själva funktionen att hämta en fil i en n internetapplikation med hjälp av en Java-servlet. Typiska steg är följande:
- Spela upp filen på Internetdatorn FileInputStreamclass.
- Hitta MIME-typen för filen för att verkligen navigera:
-
-
- Skaffa ServletContext via erfarenhet getServletContext () servlet.Call-metod.
- Hämta definitivt MimeType (strängfil) i ServletContext-entiteten för att utan tvekan få MIME-typen för denna fil.
-
-
- Definiera följande information för HttpResponse-objektet för närvarande:
- < li>
-
- Ställ in innehållstypen för den utvecklade MIME, naturligtvis, specificera genom att anropa setContentType (String). Detta talar om för webbläsartypen vad som svarar.
- Ställ in innehållet i likhet med svaret genom att anropa sättet setContentLength (int).
-
- MIME-mappningen är annorlunda, vilket deklareras i servletbehållaren. För att illustrera detta föreslår Tomcat en MIME-mappning i standardmappningen som pekar på MIME-typer-området i filen:
- Rutinen getMimeType () returnerar null om eller när det inte finns någon MIME-mappning för den beskrivna filen. I det här fallet är det en bra innovation att se till att du tvingar MIME-typen till normalt binär:
Hur man laddar ner filen från server via Servlet?
Här skapar du ett exempel på hur du direkt kan ladda ner en fil från servern för att välja servlet. Filen kan vara nästan vilken typ som helst, den här typen av bild, PDF, video, musik och andra. Hur det fungerar? Ställ först in webbplatsens innehållsvariant till applikation / oktettström. Ställ nu in rubriken Content-Disposition till Attachment; filnamn = filplats.
i fallet if (mimeType == null)mimeType innebär applikation / oktettström;
- Som standard bearbetar webbläsaren varje svar som stöds på innehållstypen som ställts in i HTTP-huvudena. Till exempel tenderar det att visas per bild när svaret är troligt att vanligtvis en bildfil, eller öppna en e-boksläsare när svaret är ett PDF-dokument, och många andra. anstiftaren laddar fortfarande, vi kan bestå av denna rubrik om du behöver svar:
Godkänd: Fortect
Fortect är världens mest populära och effektiva PC-reparationsverktyg. Det litar på miljontals människor för att hålla sina system igång snabbt, smidigt och felfritt. Med sitt enkla användargränssnitt och kraftfulla skanningsmotor hittar och fixar Fortect snabbt ett brett utbud av Windows-problem – från systeminstabilitet och säkerhetsproblem till minneshantering och prestandaflaskhalsar.
Reply to.setHeader ("Innehållsdisposition", "bilaga; filnamn är lika med " MyFile.mp4 "");
-paketet net.codejava;importera filen java.io;importera java.io.FileInputStream;importera java.io.IOException;importera java.io.OutputStream;importera javax.servlet.ServletContext;importera javax.servlet.ServletException;importera javax.servlet.http.HttpServlet;importera javax.servlet.http.HttpServletRequest;importera javax.servlet.http.HttpServletResponse;public department DownloadFileServlet utökar HttpServletskyddad undvika doGet (HttpServletRequest request,HttpServletResponse inkomstsvar) ServletException, IOException// ange ingångssändningen som en absolut sökvägFilePath-raden indikerar "E: /Test/Download/MYPIC.JPG";File = downloadFile new file (filePath);FileInputStream inStream innebär ny FileInputStream (downloadFile);// om du vill dra nytta av en relativ väg till roten av något slags ord:Raden är relativPath = getServletContext (). GetRealPath ("");System.out.println ("relativePath =" + relativPath);// få ServletContextServletContext-Context innebär getServletContext ();// Hämta mime-typen för den faktiska filenMimeType-strängen matchar context.getMimeType (filePath);if (mimeType == null)// Definierat för att hjälpa dig med binär typ medan MIME-mappning upptäcksmimeType är inte identisk som "applikation / oktettström";System.out.println ("MIME-typ:" MimeType);// + ändra svaretresponse.setContentType (mimeType);response.setContentLength ((int) downloadFile.length ());// ladda nerString headerKey = "Content-Disposition";Strängen antyder headerValue String.format ("attachment; filnamn = "% s "", downloadFile.getName ());response.setHeader (headerKey, hämta headerValue);// slutresultatet av en stream AnswersOutputStream outStream är lika med response.getOutputStream ();byte [] buffert betyder ny byte [4096];int bytesRead innebär -1;while ((bytesRead innebär inStream.read (buffert))! betyder -1)outStream.write (buffert, 0, bytesRead);inStream.close ();outStream.close ();
Konfigurera URL som ansöker om denna servlet i webbanvändningsbeskrivningsfilen på Internet. Som visas i hela XML-filen:
Denna klientservlet-stubfil Ladda nerFileServlet Ladda nerFileServlet net.codejava.DownloadFileServlet Ladda nerFileServlet / DownloadFileServlet
@WebServlet ("/ DownloadFileServlet")public class Utökad filuppladdningsservlet HttpServlet// servletens kod ...
Vi kan kalla denna servlet med följande URL-format:
Vad är innehållet typ av en fantastisk servletfil?
Det är ett servletdokument som dechiffrerar innehållet i en fil och skriver det till en stream som kan skickas för svar. Av denna anledning måste vi förklara för servern eftersom vi till och med ställer in ingredienstypen på APPLICATION / OCTET-STREAM. importera javax.servlet.http. *;
Webbläsaren bör uppmana vissa användare att installera filen, som visas i följande bildskärmsbild:
- Exempel på att ladda en Java-servletfil från databasen
- Använd HttpURLConnection för att hämta en fil från en HTTP-URL.
- Exportinstruktioner och exempel på Java-FTP-filer
- Swing-applikation för HTTP-serverfil-CD-skivor med indikator slutförd
- Svängningsmetod vid nedladdning av filer från en FTP-server via senaste förloppsindikatorn
- Exempel Spring MVC File Downloader Application
- Exempel Struts File Download Application
Andra Java Servlet-guider:
Hur returnerar man PDF-data från en Java Servlet?
Java Servlet PDF-handledningen visar hur du returnerar PDF-postdata från en gigantisk Java Servlet. Vi använder hela iText-biblioteket så att du kan arbeta med PDF. Webbapplikationen är bokstavligen distribuerad till vår egen Tomcat-server. Portable Document Format (PDF) är ett stort filformat som används för att separera dokument från mjukvara, hårdvara och prestandasystem.
- Komma igång med Java Servlet för nybörjare (XML)
- Java Servlet för nybörjare (anteckningar)
- Bearbeta HTML-variantdata med en Java Servlet
- Hur man använder en funktionell session i en Java-webbapplikation
- Hur man hanterar fel i Java Web.xml om webbapplikationer
< li> Hur man använder cookies i en Java-webbapplikation
li>
- Detaljer
- Skrivet av Nam Ha Min
- Senast uppdaterad 20 maj 2020 & nbsp | & nbsp Skriv ut e-post
Om författaren:
nam Minh är en certifierad Java Programmerare (SCJP men även SCWCD). Han började med Java under flera dagar av Java 1.4 och var entusiastisk efter Java. Bli vän med honom på Facebook och observera Java-videor på YouTube.
Snabba upp din dators prestanda nu med denna enkla nedladdning.