response - enviar um arquivo para download [resolvido]  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
rmarin
JavaEvangelist
[Avatar]

Membro desde: 13/07/2005 09:14:45
Mensagens: 360
Localização: São Paulo
Offline

Boa tarde Guj,

Seguinte:

O usuário requisita um relatório, eu gero este relatório no servidor e quero enviar para download. O que acontece é que o arquivo abre no browser (como se fosse uma página), e não abre a opção para download.

Sei que o redirect redireciona para página mas como fazer redirecionar para um download?

Estou tentando assim:



Já tentei setar o header e ContentType mas não adianta.:


não sei se faz diferença mas é um arquivo ".csv"

Muito obrigado.

This message was edited 1 time. Last update was at 22/07/2005 15:28:54


Roberto Marin
__________________________________________
Odeio auto-nerds!
[WWW]
Wonder
JavaGuru
[Avatar]

Membro desde: 28/03/2004 09:45:06
Mensagens: 229
Localização: Sampa
Offline

rmarin wrote:
não sei se faz diferença mas é um arquivo ".csv"


bem provável que o seu browser reconhece esse tipo de arquivo e tenta abri-lo, faça um teste colocando uma extensão diferente.

This message was edited 1 time. Last update was at 21/07/2005 21:18:21


http://www.ime.usp.br/~wonder
A minha mente esta preparada para grandes emoções
Para compreender a verdadeira natureza das pessoas, você deve olhar para suas mentes, e examinar suas ambições e seus medos...
Mire o final e nunca pare para duvida; nada é tão dificil, mas a busca irá descobri-lo...
Nada se torna real até ser experimentado - mesmo um provérbio não significa nada para você atè sua vida ilustrá-lo...
[Email] [WWW] [MSN]
rmarin
JavaEvangelist
[Avatar]

Membro desde: 13/07/2005 09:14:45
Mensagens: 360
Localização: São Paulo
Offline

Wonder wrote:
bem provável que o seu browser reconhece esse tipo de arquivo e tenta abri-lo, faça um teste colocando uma extensão diferente.


Wonder pior que não é isso, já modifiquei também a extensão só que continua abrindo dentro da página.

Não sei por que não está abrindo como download.
E é uma coisa simples, redirecionar para um download.

Alguém tem alguma idéia?

[]´s

Roberto Marin
__________________________________________
Odeio auto-nerds!
[WWW]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Eu uso só isso:

response.setContentType("application/octet-stream");

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
rmarin
JavaEvangelist
[Avatar]

Membro desde: 13/07/2005 09:14:45
Mensagens: 360
Localização: São Paulo
Offline

danieldestro wrote: response.setContentType("application/octet-stream");


Sei, mas e para passar o endereço do arquivo?
Você vai ter que dar um "response.sendRedirect(fileName);" certo?

Então acho que é nessa parte que ferra tudo!

Obrigado.

Roberto Marin
__________________________________________
Odeio auto-nerds!
[WWW]
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline

Você tá colocando o nome do arquivo com o host ou só com a "/"?

Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr

Screencast de Introdução a linguagem Objective-C
[WWW]
rmarin
JavaEvangelist
[Avatar]

Membro desde: 13/07/2005 09:14:45
Mensagens: 360
Localização: São Paulo
Offline

Maurício Linhares,

Cara estou passando só com '/' mas creio que não seja este o problema pois
consigo encontrar o arquivo, só que ele abre na página e não força o download.


Como seria pra eu passar o host?

Roberto Marin
__________________________________________
Odeio auto-nerds!
[WWW]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Eu leio os bytes do arquivo, via um Stream e grava no Output. É melhor!

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
rmarin
JavaEvangelist
[Avatar]

Membro desde: 13/07/2005 09:14:45
Mensagens: 360
Localização: São Paulo
Offline

danieldestro pior que eu estava fazendo exatamente isso.

O que ocorre é que desta maneira acabava dando "out of memory" pois são diversos relatórios para diversos clientes. imagine, cada relatório possui cerca de 50.000 linhas.

Então tivemos a idéia de montar o arquivo fisico e ir dando flush() para não alocar muita memória (arquivos com 20 megas). Tudo está ok, no que diz respeito a criação e localização do arquivo. Só que não consigo redirecionar para o download, o arquivo acaba abrindo dentro da página...




Roberto Marin
__________________________________________
Odeio auto-nerds!
[WWW]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Eu continuo fazendo aquilo e dando flush() tbm.

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
rmarin
JavaEvangelist
[Avatar]

Membro desde: 13/07/2005 09:14:45
Mensagens: 360
Localização: São Paulo
Offline

danieldestro consegui cara, tinha que configurar no WebSphere em entradas MIME padrão.
Depois de configurado ele força o download com o aplicativo excel:

No web sphere:

No código:


Muito obrigado a todos.

This message was edited 1 time. Last update was at 22/07/2005 15:07:31


Roberto Marin
__________________________________________
Odeio auto-nerds!
[WWW]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team