Gostaria de forçar o browser a fazer o download do arquivo!

3 respostas
Jorge_Almeida

Tenho um Servlet que gera um relatorio em formato .pdf, com o codigo abaixo eu nao consigo forcar o browser a realizar o download do arquivo. No Firefox, o arquivo aparece em outra aba. No IE7, o arquivo eh aberto pelo Adobe Reader e o IE7 dah pau.

ServletOutputStream servletOutputStream = response.getOutputStream(); File arquivoRelatorio = new File( this.getServletContext().getRealPath("/reports/produtos.jasper") ); InputStream relatorioStream = new FileInputStream(arquivoRelatorio); //InputStream reportStream = getServletConfig().getServletContext().getResourceAsStream("/reports/produtos.jasper"); try { JasperRunManager.runReportToPdfStream(relatorioStream, servletOutputStream, new HashMap(), this.createReportDataSource()); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename=\"produtos.pdf\""); servletOutputStream.flush(); } catch (JRException e) { StringWriter stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(stringWriter); e.printStackTrace(printWriter); response.setContentType("text/plain"); response.getOutputStream().print(stringWriter.toString()); } finally { servletOutputStream.close(); }

3 Respostas

von.juliano

Tente alterar essa linha:

response.setContentType("inline/download");Assim deve funcionar.

Blz? Flw! :thumbup:

M

Se vc setar o content type com qualquer formato que o browser nao abra diretamente, ele fara o download.
Pode ate ser: application/doc
^^

Jorge_Almeida

Realizei as modificacoes sugeridas mas dah na mesma.
Continuo nao realizando o download do arquivo e pior, agora
notei que o arquivo nao esta com o nome setado
apropriadamente. O codigo abaixo nao esta funcionando:

response.setHeader("Content-Disposition", "attachment;filename=\"produtos.pdf\"");
Criado 17 de junho de 2008
Ultima resposta 17 de jun. de 2008
Respostas 3
Participantes 3