a implementação deu certo. Ficou assim:
response.setContentType("*/*"); ServletOutputStream out = response.getOutputStream(); FileInputStream in = null; try { in = new FileInputStream(caminhoArquivo); byte[] buffer = new byte[4 * 1024]; int bytesRead; while((bytesRead = in.read(buffer)) != -1) { out.write(buffer, 0, bytesRead); } } finally { if(in != null) in.close(); }
Só tem um problema: o nome do arquivo que aparece para o usuário fazer o download é o mesmo nome do servlet, e não o nome original do arquivo. Alguém tem alguma sugestão para alterar o nome do arquivo?
Atenciosamente,
Hildeberto Mendonça
Mentores Consultoria LTDA. www.mentores.com.br
Hildeberto Mendonça wrote:
Obrigado. Vou testar e te dou um feedback.
Atenciosamente,
Hildeberto Mendonça Mentores Consultoria LTDA. www.mentores.com.br
Francisco Pinto wrote:
Pra que voce faz o Redirect ai? Entendi que queria fazer um Download, mas que esse não fosse visualizado no browser, mas salvo como um download.
Um download é mais ou menos assim:
response.setContentType("xxxx/yyyy");
...
out = response.getOutputStream();
out.write( bytes );
...
O redirect anula o content-type ai. O redirect envia o usuário pro outro link. Tudo que tenha sido "escrito" no response, é anulado (contanto que não tenha sido despachado (auto-flush) pro cliente).
-----Mensagem original----- De: Hildeberto Mendonça [mailto:[EMAIL PROTECTED] Enviada em: quinta-feira, 11 de março de 2004 21:39 Para: [EMAIL PROTECTED] Assunto: Re: RES: [cejug-discussao] Apresentação da tela de download
Não adiantou. O browser continuar abrindo a aplicação necessária.
Veja a implementação.
response.setContentType("xxxx/yyyy");
response.sendRedirect(link);
Atenciosamente,
Hildeberto Mendonça
Mentores Consultoria LTDA.
www.mentores.com.br
Francisco Pinto wrote:
Hildeberto,
Basta mudar o Content-Type pra algo que o browser não reconheça. Algo como
"xxxx/yyyy", ou similar.
-----Mensagem original-----
De: Hildeberto Mendonça [mailto:[EMAIL PROTECTED]
Enviada em: quinta-feira, 11 de março de 2004 12:12
Para: [EMAIL PROTECTED]
Assunto: [cejug-discussao] Apresentação da tela de download
Pessoal,
numa aplicação JSP/Servlet estou disponibilizando um arquivo para
download. Gostaria que esse arquivo não fossa aberto pela aplicação
configurada para tal, por exemplo: um arquivo pdf não abriria
automaticamente pelo Acrobat Reader, um doc não abriria automaticamente
pelo Word. Há algo que possa ser feito para que a tela de download
apareça, independente do formato do arquivo?
Atenciosamente,
-------------------------------------------------------------------------------------------
Ceara' Java User Group
Para cancelar sua assinatura, envie um e-mail para: [EMAIL PROTECTED]
Para mais informacoes, mande um e-mail para: [EMAIL PROTECTED]
Falar com o administrador? e-mail para: [EMAIL PROTECTED]
-------------------------------------------------------------------------------------------
Ceara' Java User Group
Para cancelar sua assinatura, envie um e-mail para: [EMAIL PROTECTED]
Para mais informacoes, mande um e-mail para: [EMAIL PROTECTED]
Falar com o administrador? e-mail para: [EMAIL PROTECTED]
-------------------------------------------------------------------------------------------
Ceara' Java User Group
Para cancelar sua assinatura, envie um e-mail para: [EMAIL PROTECTED]
Para mais informacoes, mande um e-mail para: [EMAIL PROTECTED]
Falar com o administrador? e-mail para: [EMAIL PROTECTED]