2017-01-13 1 views
1

Ich benutze intellij Idee und ich habe meine PDF-Datei im Ressourcen-Ordner gespeichert. Ich möchte diese PDF-Datei im Browser anzeigen.Anzeige PDF-Datei im Browser mit Servlet

public class GetDocumentation extends HttpServlet { 
    private static final Logger log = Logger.getLogger(GetDocumentation.class); 
@Override 
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 
    InputStream pdf_path = this.getClass().getResourceAsStream(ApplicationProperties.getProperty("PDF_PATH")); 

    resp.setContentType("application/pdf"); 
    resp.addHeader("Content-Disposition", "attachment; filename=Documentation.pdf"); 
    OutputStream responseOutputStream = resp.getOutputStream(); 

    byte[] buf = new byte[4096]; 
    int len = -1; 

    while ((len = pdf_path.read(buf)) != -1) { 
     responseOutputStream.write(buf, 0, len); 
    } 
    responseOutputStream.flush(); 
    responseOutputStream.close(); 
    } 
} 


<a href="/documentation">Documentation</a> 

Ich benutze Jsp Servlet und ich rufe "/ Dokumentation". Und meine Datei wird gerendert, aber sie ist leer. Mache ich etwas falsch?

+0

Wie Sie den Content-desposition Header gesetzt, sollte die Datei nicht im Browser angezeigt werden. Der Browser sollte einen Dialog zum Öffnen/Speichern anzeigen. Sind Sie sicher, dass Ihr serverseitiger Code die Datei findet und als Antwort sendet? Sie haben keine Ausnahme auf der Serverseite? – zaerymoghaddam

Antwort

0

inline Content-Disposition sollte verwendet werden, um das Dokument anzuzeigen. Ersetzen "attachment" mit "inline":

resp.addHeader("Content-Disposition", "inline; filename=Documentation.pdf"); 
Verwandte Themen