概要本分步指南创建了一个示例页,该页演示了如何从文件中检索二进制数据,然后如何使用 ASP.NET 和 Visual Basic .NET 将该数据写出到浏览器中。 尽管此演示使用的是 Adobe Acrobat (.pdf) 文件(Web 应用程序开发人员常使用这种文件),但您也可以对其他二进制文件格式使用此过程。
要求• Microsoft .NET 框架 • Microsoft Windows 2000 或 Windows XP • Microsoft Internet Information Server (IIS)
使用 Visual Basic .NET 创建 ASP.NET Web 应用程序本节介绍如何创建一个名称为 BinaryDemo 的新 ASP.NET Web 应用程序: 1. 打开 Microsoft Visual Studio .NET 2. 从文件菜单,指向新建,然后单击项目。 3. 在项目类型下,单击 visual Basic 项目。在模板下面,单击 ASP.NET Web 应用程序。 4. 在名称文本框中,键入 BinaryDemo。 在位置文本框中,键入服务器名。 如果您当前使用的是本地服务器,请保留默认位置 http://localhost。
向项目添加 PDF 文件若要设置您的项目以便能够添加并运行下面创建 ASPX 页一节中的代码,则必须首先向当前项目中添加一个 Adobe Acrobat (.pdf) 文件。 若要在 Visual Studio .NET 实现这一点,请按以下步骤操作: 1. 在解决方案资源管理器中,右键单击项目节点,单击添加,然后单击添加现有项。 2. 浏览到系统上一个 .pdf 文件的位置。 3. 单击以突出显示该文件,然后单击打开。 4. 在 Visual Studio .NET 解决方案资源管理器中,右键单击文件,然后单击重命名。 重命名该 .pdf 文件,使之匹配下面代码中使用的文件名 Acrobat.pdf。 另外,确保要从其上查看 .aspx 页的客户机上安装了 Adobe Acrobat Reader,以便浏览器能够正确读取并呈现二进制数据。 可以从以下 Adobe Web 站点下载 Adobe Acrobat Reader: • http://www.adobe.com (http://www.adobe.com)
创建 ASPX 页1. 向当前项目添加一个名为 BinaryData.aspx 的新 .aspx 页,如下所示: a. 在解决方案资源管理器中,右键单击该项目节点,单击添加,然后单击添加 Web 窗体。 b. 将该页命名为 BinaryData.aspx,然后单击打开。
备注: 确保将您的页面添加到项目中在上一节中添加的 .pdf 文件所在的级别。 这一点非常重要,因为代码最初引用 .pdf 文件时采用相对路径。 2. 在编辑器,右键单击 binarydata.aspx,然后单击查看代码。 3. 突出显示以下代码,右键单击突出显示的内容,然后单击复制。 在代码隐藏页的 page_load 事件中,单击编辑菜单上的粘贴以粘贴以下代码: Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Set the appropriate ContentType. Response.ContentType = "Application/pdf" 'Get the physical path to the file. Dim FilePath As String = MapPath("acrobat.pdf") 'Write the file directly to the HTTP output stream. Response.WriteFile(FilePath) Response.End()End Sub 4. 在文件菜单上,单击全部保存。 5. 在生成菜单上,单击生成。 6. 若要运行该代码,请在解决方案资源管理器中右键单击 binarydata.aspx,然后单击在浏览器中查看。 得到提示后,请单击打开以便在浏览器中打开并呈现该文件。 备注: 如果您想使用前面的代码来支持其他二进制文件类型,则必须修改 contenttype 字符串中的值,使它指定相应的文件格式。 此字符串的语法的通常格式为“类型/子类型”,其中“类型”是一般内容类别,“子类型”是具体内容类型。 有关支持的内容类型的完整列表,请参阅 Web 浏览器文档或当前的 HTTP 规范。 下面的列表列出了一些通用的 contenttype 值: • "text/HTML" • "image/GIF" • "image/JPEG" • "text/plain" • "Application/msword" (for Microsoft Word files) • "Application/x-msexcel" (for Microsoft Excel files)
参考有关更多信息,请参阅 .NET 框架软件开发工具包 (SDK) 文档中的以下主题: HttpResponse.WriteFile 方法http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWebHttpResponseClassWriteFileTopic.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWebHttpResponseClassWriteFileTopic.asp)
httpresponse 类http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWebHttpResponseClassTopic.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWebHttpResponseClassTopic.asp)
.net 框架 SDK http://www.microsoft.com/downloads/details.aspx?familyid=9B3A2CA6-3647-4070-9F41-A333C6B9181D&displaylang=en (http://www.microsoft.com/downloads/details.aspx?familyid=9B3A2CA6-3647-4070-9F41-A333C6B9181D&displaylang=en)
.net 框架类库http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/cpref_start.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/cpref_start.asp)有关如何使用 Microsoft Active Server Page (ASP) 完成此任务的其他信息,请单击下面的文章编号以查看 Microsoft 知识库中的文章: 276488 (http://support.microsoft.com/kb/276488/EN-US/) HOWTO: Use the ADODB.Stream Object to Send Binary Files to the Browser through ASP(使用 ADODB.Stream 对象通过 ASP 将二进制文件发送到浏览器)