Ler e exibir dados binários no ASP usando ServerXMLHTTP

Este artigo mostra como ler e exibir dados binários em ASP (Páginas do Servidor Ativo) usando ServerXMLHTTP.

Versão original do produto: Serviços de Informações da Internet
Número de KB original: 303982

Resumo

ServerXMLHTTP fornece métodos e propriedades para acesso HTTP seguro ao servidor entre diferentes servidores Web. Você pode usar esse objeto para trocar dados binários entre esses servidores por meio do ASP.

Mais informações

A página ASP recebe e, em seguida, exibe os dados binários usando o tipo MIME (Extensões de Internet do Multiuso) apropriado. Por exemplo, para imagens .gif, altere o tipo MIME usando o seguinte:

Response.ContentType = "image/gif"

Observação

Para arquivos do Adobe Acrobat, use application/pdfou para imagens .jpg, use image/jpg.

O comportamento padrão para tipos MIME é abrir o documento no Microsoft Internet Explorer. A adição do código a seguir solicita que o usuário salve o arquivo ou abra o arquivo com o programa associado:

Content-disposition: attachment; filename=fname.ext

Para obter mais informações, consulte Como levantar uma caixa de diálogo Download de Arquivos para um tipo MIME conhecido.

As etapas a seguir ilustram como usar ServerXMLHTTP para transmitir um arquivo .jpg para o navegador. ServerXMLHTTP recupera uma resposta XML de uma página ASP por HTTP. Usando GET, o exemplo envia uma solicitação sem transferir dados para o servidor Web. O exemplo grava essa resposta na saída do navegador informando primeiro ao navegador que a resposta é uma imagem (image/jpg) e, em seguida, passando a resposta diretamente do objeto Response para exibi-la na tela.

  1. Crie uma nova página ASP e cole o seguinte código na página:

    <%@ Language=VBScript %>
    <%
    Response.ContentType = "image/jpeg"
    ' Uncomment to prompt user for download or run with associated program.
    ' Response.AddHeader "content-disposition","attachment;filename=ReadMe.jpg"
    Set objHTTP = Server.CreateObject("Msxml2.ServerXMLHTTP")' Point to an image file with adequate access permissions granted
    objHTTP.open "GET", "http://servername/picture.jpg",false
    objHTTP.send
    Response.BinaryWrite objHTTP.ResponseBody
    Set objHTTP = Nothing
    %>
    
  2. Salve o arquivo no servidor Web.

  3. Navegue até o arquivo.

Ao usar o ServerXMLHTTP objeto, esteja ciente do seguinte:

  • Devido a problemas de threading, a página ASP e o arquivo que está sendo acessado devem estar em pastas virtuais diferentes.
  • O analisador MSXML 3.0 ou posterior deve ser instalado no servidor e o utilitário de configuração de proxy deve ser executado com as configurações apropriadas.

Referências