forçar download de arquivo text no Internet Explorer

1 resposta
A

Pessoal.

Preciso de alguma dica para solucionar este problema, o seguinte código:

File _file = new File( file);
        response.setHeader( "Pragma ", "public ");
        response.setHeader( "Expires ", "0 ");
        response.setHeader("Cache-Control ", "must-revalidate, post-check=0, pre-check=0 ");
        response.setContentType( "application/octet-stream" );
        response.setHeader( "Content-Disposition ", "attachment; filename=\""+_file.getName()+ "\"; ");
        response.setHeader( "Content-transfer-encoding ", "binary ");
        response.setContentLength((int)_file.length());
       
        try {
            PrintWriter out = response.getWriter();
            FileInputStream fileInputStream = new FileInputStream(_file);
            int i;
            while ((i=fileInputStream.read())!=-1) {
                out.write(i);
            }
            out.flush();
            out.close();           
            fileInputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

isto funciona direitinho com Mozilla e Mozilla-Firefox… porém, na porcaria do IE, ele abre na tela ou tentar salvar com o nome do servlet, sem extensão, nem nada!

Para constar, é um arquivos tipo csv…

Obrigado!

1 Resposta

H

Três possibilidades (não testadas, :grin:):

O formato csv, ou comma delimited, é montado sobre texto puro. Então, tente enviá-lo com content-type plain/text.

Mude o content-transfer-encoding para 8bit;

Enviar através de um OutputStream.

Criado 18 de outubro de 2004
Ultima resposta 20 de out. de 2004
Respostas 1
Participantes 2