使用 ServerXMLHTTP 在 ASP 中读取和显示二进制数据

本文介绍如何使用 ServerXMLHTTP 在 Active Server Pages (ASP) 中读取和显示二进制数据。

原始产品版本: Internet Information Services
原始 KB 数: 303982

总结

ServerXMLHTTP 为不同 Web 服务器之间的服务器安全 HTTP 访问提供方法和属性。 可以使用此对象通过 ASP 在这些服务器之间交换二进制数据。

详细信息

ASP 页接收二进制数据,然后使用适当的多用途 Internet 邮件扩展 (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 通过 HTTP 从 ASP 页检索 XML 响应。 通过使用 GET,该示例发送请求而不将任何数据传输到 Web 服务器。 该示例首先通知浏览器响应是图像(image/jpg),然后直接从 Response 对象传递响应以显示在屏幕上,从而将此响应写入浏览器的输出。

  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. 将文件保存到 Web 服务器。

  3. 浏览到 文件。

使用 ServerXMLHTTP 对象时,请注意以下事项:

  • 由于线程问题,正在访问的 ASP 页和文件应位于不同的虚拟文件夹中。
  • 应在服务器上安装 MSXML 3.0 分析程序或更高版本,并且应使用适当的设置运行代理配置实用工具。

参考