2015-09-09 3 views
5

Nel mio servlet sto usando il codice qui sotto per aprire un file PDF in un browser, ma invece mostra una finestra di dialogo di download.Come visualizzare il file PDF nel browser

Cosa sto facendo male?

response.setContentType("application/pdf"); 
out = response.getWriter(); 
String filepath = "D:/MyFolder/PDF/MyFile.pdf"; 

response.setHeader("Content-Disposition", "inline; filename=" + filepath + ";"); 
FileOutputStream fileOut = new FileOutputStream("D:/MyFolder/PDF/MyFile.pdf"); 

fileOut.close(); 
out.close(); 
+1

http://stackoverflow.com/questions/291813/recommended-way-to-embed-pdf-inhtml? – gates

+0

Ho una soluzione ma non molto fessibile uso apache poi api e convertire ogni pagina in file pdf in immagine e quindi visualizzarla –

+0

Come posso farlo in servlet ?? –

risposta

0

u può provare a fare lo stesso con

response.setHeader("Content-Disposition", "attachment; ilename="+filepath+";"); 
5

come si deve impostare il tipo di risposta con la seguente configurazione: -

File outPutFile=new File(generatedFile); 
stream = response.getOutputStream(); 
response.setContentType("application/pdf"); 
response.setHeader("Content-Disposition", "inline; filename=\"" + filename + "\""); 
response.setContentLength((int) outPutFile.length()); 
+0

errore minore: outPut -> output (è solo 1 word) – tucuxi

+0

@SaviNuclear L'ho provato ma non funziona, puoi suggerire qualche altro metodo ??? –

+0

@vineethPrabhakaran potresti per favore fornire il messaggio di errore o i dettagli del registro per capire il tuo problema. – SaviNuclear

0

This è legato

è il browser Firefox? This potrebbe essere rilevante

+0

In realtà ho provato ad usarlo ma ancora non sono in grado di mostrare il pdf –

0

avete bisogno di questo:

response.setContentType("application/pdf") 
response.setHeader("Content-Disposition", "inline; filename= .. ") 

In caso contrario, il browser vi chiederà di aprire/salvare. (se content type è octet-stream o content-disposition è allegato)

se si desidera visualizzare il pdf in una scheda, è necessario impostare target = "_blank" in html (o angular, jsp, qualunque struttura tu stia usando).