Response - enviar um arquivo para download [resolvido]
10 respostas
rmarin
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:
response.sendRedirect(fileName);
Já tentei setar o header e ContentType mas não adianta.:
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.
Mauricio_Linhares
Você tá colocando o nome do arquivo com o host ou só com a “/”?
rmarin
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?
danieldestro
Eu leio os bytes do arquivo, via um Stream e grava no Output. É melhor!
rmarin
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…
danieldestro
Eu continuo fazendo aquilo e dando flush() tbm.
rmarin
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: