Pára o IE8 renomear arquivos para .zip ao fazer o download?

2

Temos alguns arquivos em nosso servidor web, que são arquivos zip válidos, mas são usados por outro programa como arquivos de dados. No entanto, ao baixar esses arquivos (clicando em um link href) com o Internet Explorer 8, eles são renomeados para * .zip, portanto, não estão mais associados ao programa correto.

Existe algo que eu possa fazer no nosso servidor, ou o html da página de download, que impedirá o IE de renomear esses arquivos?

O FireFox e o Chrome deixam o arquivo com o nome original, por isso não tem esse problema.

    
por Wilka 15.07.2009 / 13:04

3 respostas

4

Primeiro, alguns antecedentes ..

O seu servidor web está determinando que o arquivo é um arquivo ZIP válido usando alguma mágica MIME. Por isso, entrega a resposta HTTP com o seguinte cabeçalho:

Content-Type: application/zip

Quando o IE8 recebe o arquivo, ele já foi informado de que é um ZIP. Em seguida, quando estiver na configuração de segurança padrão "Abrir arquivos baseados em conteúdo, não em extensão de arquivo", ele procurará uma extensão designada para esse tipo de conteúdo no registro em HKEY_CLASSES_ROOT\MIME\Database\Content Type .

Existem algumas maneiras de atacar isso. Você pode alterar qualquer uma das duas variáveis na máquina local acima. Mas eu certamente não recomendaria alterar as configurações da máquina local sempre que possível - é hackea e não vai escalar. A melhor solução seria corrigir o servidor da web por:

  • Configurando uma declaração MIME estática para a extensão original do arquivo a ser enviada como application/octet-stream . Isso solicitará que o arquivo seja entregue como um binário simples, sem informações de conteúdo.

  • Exibindo os arquivos com o cabeçalho Content-Disposition: attachment , o que fará com que o IE respeite o nome do arquivo especificado pelo servidor da web. Isso pode não ser tão simples, dependendo da sua plataforma.

por 15.07.2009 / 13:56
0

Você está usando o IE8 para baixá-lo? Nesse caso, você precisa adicionar o site à lista de sites confiáveis no IE8 para fazer o download corretamente.

    
por 15.07.2009 / 13:05
0

Aparentemente, o Internet Explorer 8 obedece ao tipo MIME especificado pelo servidor por motivos de segurança ao nomear um arquivo.

Você pode tentar configurar os tipos mime do seu servidor e adicionar 'xyz' (substitua pela sua extensão de arquivo) ou desativar esse comportamento no Internet Explorer 8:

    Internet Options -> Security Settings
       "Custom Level" -> Miscellaneous section: 
       Open files based on content, not file extension
    
por 15.07.2009 / 13:54