GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Erro SSL + Internet Explorer [Resolvido]


#1

Boa tarde pessoal.

Estou desenvolvendo um sistema de transmissão de arquivos (TXT).
Esse sistema utiliza SSL e estou enfrentando um problema pra baixar arquivos utilizando o Internet Explorer.
Esse problema inclusive já foi reportado como bug do IE (http://support.microsoft.com/kb/316431/pt-br).

De acordo com a Microsoft, "Sites que desejam permitir esse tipo de operação devem remover o cabeçalho ou os cabeçalhos no-cache."
Alguém já passou por isso? Como posso remover o(s) cabeçalho(s) no-cache?

Segue abaixo a classe que utilizo pra realizar o download do arquivo.

	public static void downloadNoBrowser(HttpServletResponse response, 
										 String fileName, 
										 InputStream is) throws IOException {
		ServletOutputStream os = response.getOutputStream();
		response.setHeader("Content-disposition", "attachment; filename=" + fileName);
		response.setContentType("application/octet-stream");
		byte[] buffer = new byte[2048];
		int bytesRead = is.read(buffer);
		while (bytesRead >= 0) {
			if (bytesRead > 0)
				os.write(buffer, 0, bytesRead);
			bytesRead = is.read(buffer);
		}
		os.flush();
		os.close();
		is.close();
	}

[]'s
PS: no Firefox funciona corretamente, mas alguns clientes estão restritos ao IE.


#2

Pesquisei no google e achei uma "gambiarra" que resolveu meu problema.
http://www.junlu.com/msg/164251.html
A solução proposta é alterar o registro do windows :shock:

Pra mim o impacto não vai ser grande pois tenho apenas 2 usuários utilizando esse sistema e tenho um bom relacionamento com o pessoal do suporte técnico. :smiley:

Se alguém tiver uma solução menos gambiarrada e que não precise configurar nada no cliente, favor me avisar.
[]'s


#3

Encontrei uma solução melhor do que a gambiarra informada acima.
À quem interessar

		response.setHeader("Content-disposition", "attachment; filename=" + fileName);
		response.setContentType("application/x-download");
		response.setHeader ("Pragma", "public");
		response.setHeader("Cache-control", "must-revalidate");

#4

Essa solução me ajudou, foi justamento o problema que tinha aqui, e resolveu, muito obrigado por postar.


#5