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] 
 

Responder a