Alguém ajuda por favor,
Estou tentando fazer um download de um arquivo
no servidor, e no IE não funciona
está abrindo a janela e logo fecha
sem dar a opção para abrir ou fazer download…
o que impressiona é que não gera nenhum erro
nos logs. outra coisa FUNCIONA no mozilla.
Alguém já teve esse problema?
Obrigado.
Opa, poderia dar mais detalhes?
Você está chamando um servlet que é o download do arquivo? Ou como está fazendo isso?
[quote=sergiom]Opa, poderia dar mais detalhes?
Você está chamando um servlet que é o download do arquivo? Ou como está fazendo isso?[/quote]
Exatamente, na minha JSP eu chamo esse servlet
para então ele acessar o arquivo e fazer o download.
o problema é que só funciona no mozilla.
Já fiz tbem direto da JSP sem chamar um servlet
e tbem não deu certo.
[quote=kleberdamasco][quote=sergiom]Opa, poderia dar mais detalhes?
Você está chamando um servlet que é o download do arquivo? Ou como está fazendo isso?[/quote]
Exatamente, na minha JSP eu chamo esse servlet
para então ele acessar o arquivo e fazer o download.
o problema é que só funciona no mozilla.
Já fiz tbem direto da JSP sem chamar um servlet
e tbem não deu certo.
[/quote]
Kleber, pode pastar o seu código?
Talvez esteja faltando algum header.
ai vai…
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
String parametros = request.getQueryString().toLowerCase();
String fileName = "";
if (parametros.contains("sped")) {
response.setContentType("application/txt");
response.setHeader("Content-Disposition", "attachment; filename=\""+ fileName+"\"");
int tipo_rel;
tipo_rel = Integer.parseInt((String) request.getParameter("tipo"));
switch (tipo_rel) {
case 1:
fileName = "SPED_CONTABIL_"
+ (String) session.getAttribute("str_id_usuario")
+ ".fz";
break;
case 2:
fileName = "SPED_FCONT_"
+ (String) session.getAttribute("str_id_usuario")
+ ".fz";
break;
case 3:
fileName = "SPED_PISCOFINS_"
+ (String) session.getAttribute("str_id_usuario")
+ ".fz";
}
try {
String aux = "\\\\192.168.0.251\\ArquivosPi\\ctb\\"+fileName;
PrintWriter out = response.getWriter();
BufferedReader br = new BufferedReader(new FileReader(aux));
while(br.readLine()!=null){
out.print(br.readLine()+"\r\n");
}
} catch (IOException err) {
System.out.println(err);
err.printStackTrace();
}
}
Kleber,
adicionando:
response.setContentType("application/force-download");
response.setContentLength((int)f.length()); //aqui vai o tamanho do arquivo
resolve?
Obs: precisa criar um File para buscar o tamanho.
já tentei alguns tipos desse contentType…
o estranho é que só não funciona quando
está fora do locahost e o navegador é o IE