Você está offline; aguardando reconexão

Como gerar uma caixa de diálogo "Download de Arquivo" para um tipo de MIME conhecido

Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.
Sumário
Quando um documento é usado a partir de um servidor da Web, talvez seja preciso pedir imediatamente ao usuário para salvar diretamente o arquivo no disco, em vez de abri-lo no navegador. No entanto, para tipos de MIME (Multipurpose Internet Mail Extensions) conhecidos, como o Microsoft Word ("application/ms-word"), o comportamento padrão é abrir o documento no Internet Explorer.

É possível usar o cabeçalho de disposição do conteúdo para substituir o comportamento padrão. O formato é:
Content-disposition: attachment; filename=fname.ext				
Mais Informações
A disposição do conteúdo é uma extensão do protocolo MIME que instrui um agente de usuário MIME a respeito de como ele deve exibir o arquivo anexo. O intervalo de valores válidos da disposição do conteúdo é analisado na RFC (Request for Comment) 1806 (consulte a seção "Referências" deste artigo). O artigo está voltado para o argumento "anexo", que instrui um agente de usuário (no caso, Internet Explorer) a salvar um arquivo no disco, em vez de salvá-lo inline.

Quando recebe o cabeçalho, o Internet Explorer gera uma caixa de diálogo Download de arquivo cuja caixa com o nome de arquivo é preenchida automaticamente pelo que está especificado no cabeçalho. (Lembre-se de que isso é próprio do projeto e não há como usar esse recurso para salvar um documento no computador do usuário sem que lhe seja solicitado um local para isso).

Há duas formas de usar o Internet Explorer para especificar o cabeçalho de disposição do conteúdo para um arquivo: dinâmica e estaticamente.

Para aplicar o cabeçalho dinamicamente, crie um arquivo ASP (Active Server Pages) que grava o documento fora do navegador. Use o método Response.AddHeader para adicionar o cabeçalho de disposição do conteúdo. Por exemplo:
Response.AddHeader "content-disposition","attachment; filename=fname.ext"				
Há instruções sobre como realizar uma gravação binária em documentos não-texto disponíveis no seguinte artigo da Base de Dados de Conhecimento da Microsoft:
193998 Como ler e exibir dados binários em ASP
Essa técnica é ideal quando se quer proteger o armazenamento de um documento no servidor, especialmente um que esteja fora da raiz da Web.

Para aplicar o cabeçalho estaticamente, no Gerenciador de serviços da Internet, clique com o botão direito do mouse no documento e selecione Propriedades. Selecione a guia Cabeçalhos HTTP e digite o cabeçalho de disposição do conteúdo. Isso funciona melhor quando se deseja apenas aplicar a disposição do conteúdo a poucos arquivos no sistema, sem a necessidade de sobrecarregar o ASP.

Lembre-se de que, por conta de um erro, essa solução não funcionará no Internet Explorer 4.01. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft:
182315 CORREÇÃO: Disposição de conteúdo: não força a caixa de diálogo Download de Arquivo
Referências
Para obter informações adicionais sobre a disposição do conteúdo, consulte a RFC 1806 (Request for Comments) no seguinte site da IETF (Força Tarefa de Engenharia da Internet) (em inglês):Para obter informações adicionais sobre como desenvolver soluções com base na Web para o Microsoft Internet Explorer, consulte os seguintes sites da Microsoft (em inglês):
content-disposition
Propriedades

ID do Artigo: 260519 - Última Revisão: 12/25/2006 09:07:52 - Revisão: 4.1

Microsoft Internet Explorer 5.0, Microsoft Internet Explorer 5.01, Microsoft Internet Explorer 5.5

  • kbhowto kbnavigation KB260519
Comentários