Чтение и отображение двоичных данных в ASP с помощью ServerXMLHTTP

В этой статье показано, как считывать и отображать двоичные данные в Active Server Pages (ASP) с помощью ServerXMLHTTP.

Исходная версия продукта: службы IIS
Исходный номер базы знаний: 303982

Итоги

ServerXMLHTTP предоставляет методы и свойства для безопасного HTTP-доступа между разными веб-серверами. Этот объект можно использовать для обмена двоичными данными между этими серверами с помощью ASP.

Дополнительная информация

Страница ASP получает и отображает двоичные данные с помощью соответствующего типа расширений электронной почты (MIME). Например, для изображений .gif измените тип MIME следующим образом:

Response.ContentType = "image/gif"

Примечание.

Для файлов Adobe Acrobat, используйте application/pdfили для .jpg изображений image/jpg.

Поведение по умолчанию для типов MIME — открытие документа в Microsoft Internet Explorer. При добавлении следующего кода пользователю будет предложено сохранить файл или открыть файл с связанной программой:

Content-disposition: attachment; filename=fname.ext

Дополнительные сведения см. в диалоговом окне "Создание диалогового окна загрузки файлов" для известного типа MIME.

В следующих шагах показано, как ServerXMLHTTP выполнять потоковую передачу .jpg файла в браузер. ServerXMLHTTP извлекает XML-ответ с страницы ASP по протоколу HTTP. С помощью GET пример отправляет запрос без передачи данных на веб-сервер. В примере записывается этот ответ в выходные данные браузера, сначала сообщая браузеру, что ответ является изображением (image/jpg), а затем передает ответ непосредственно из объекта Ответа, чтобы отобразить его на экране.

  1. Создайте страницу ASP и вставьте следующий код на странице:

    <%@ 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. Сохраните файл на веб-сервере.

  3. Выберите файл .

При использовании ServerXMLHTTP объекта следует учитывать следующее:

  • Из-за проблем с потоком страница ASP и файл, к которым осуществляется доступ, должны находиться в разных виртуальных папках.
  • Средство синтаксического анализа MSXML 3.0 или более поздней версии должно быть установлено на сервере, а служебная программа конфигурации прокси-сервера должна выполняться с соответствующими параметрами.

Ссылки