Agora deu tudo certo. Valeu Francisco. Segue a vers�o final da solu��o.

response.setContentType("*/*");
String fileName = caminhoArquivo.substring(caminhoArquivo.lastIndexOf("/") + 1);
response.setHeader( "Content-Disposition", "attachment; filename=\"" + fileName + "\"");
ServletOutputStream out = response.getOutputStream();
FileInputStream in = null;
try
{
in = new FileInputStream(caminhoArquivo);
byte[] buffer = new byte[4 * 1024]; // 4K buffer
int bytesRead;
while((bytesRead = in.read(buffer)) != -1)
{
out.write(buffer, 0, bytesRead);
}
}
finally
{
if(in != null)
in.close();
}


Atenciosamente,

Hildeberto Mendon�a
Mentores Consultoria LTDA.
www.mentores.com.br



Francisco Pinto wrote:

Acrescente isso antes de mandar o conteudo (apos o setContentType):

httpResponse.setHeader( "Content-Disposition", "attachment; filename=\"" + "nomearquivo.ext" + "\"" );

O nome do arquivo deve ser colocado sem o path.

Existem algumas situa��es que mesmo assim ainda n�o funciona, mas s�o
algumas poucas exce��es (algumas vers�es mais antigas do IE, por exemplo).


-----Mensagem original-----
De: Hildeberto Mendon�a [mailto:[EMAIL PROTECTED] Enviada em: sexta-feira, 12 de mar�o de 2004 14:27
Para: [EMAIL PROTECTED]
Assunto: Re: RES: RES: [cejug-discussao] Apresenta��o da tela de download


Pessoal,

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]




-------------------------------------------------------------------------------------------

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]






Responder a