如何使用 ASP.NET 和 Visual C# .NET 向浏览器写入二进制文件
概要
本分步指南创建了一个示例页,该页演示了如何从文件中检索二进制数据,然后如何使用 ASP.NET 和 Visual C# 将该数据写出到浏览器中。尽管此演示使用的是 Adobe Acrobat (.pdf) 文件(Web 应用程序开发人员常使用这种文件),但您也可以对其他二进制文件格式使用此过程。
要求
• Microsoft .NET Framework
• Microsoft Windows 2000 或 Windows XP
• Microsoft Internet Information Server (IIS)
使用 Visual C# 创建 ASP.NET Web 应用程序
本部分演示如何创建名为 BinaryDemo 的新 ASP.NET Web 应用程序: 1. 打开 Microsoft Visual Studio .NET。
2. 在文件菜单上,指向新建,然后单击项目。
3. 在项目类型下,单击 Visual C# 项目。在模板下,单击 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 网站下载 Adobe Acrobat Reader:
http://www.chinese-s.adobe.com/main.html (http://www.chinese-s.adobe.com/main.html)
创建 ASPX 页
1. 按以下步骤向当前项目中添加一个名为 BinaryData.aspx 的新 .aspx 页:a. 在解决方案资源管理器中,右键单击该项目节点,单击添加,然后单击添加 Web 窗体。
b. 将该页命名为 BinaryData.aspx,然后单击打开。
注意:确保将您的页面添加到项目中在上一节中添加的 .pdf 文件所在的级别。这一点非常重要,因为代码最初引用 .pdf 文件时采用相对路径。
2. 在编辑器中,右键单击 BinaryData.aspx,然后单击查看代码。
3. 突出显示以下代码,右键单击该代码,然后单击复制。在代码隐藏页的 Page_Load 事件中,单击编辑菜单上的粘贴以粘贴代码:
private void Page_Load(object sender, System.EventArgs e)
{
//Set the appropriate ContentType.
Response.ContentType = "Application/pdf";
//Get the physical path to the file.
string FilePath = MapPath("acrobat.pdf");
//Write the file directly to the HTTP content output stream.
Response.WriteFile(FilePath);
Response.End();
}
4. 在文件菜单上,单击全部保存。
5. 在生成菜单上,单击生成。
6. 若要运行代码,请在解决方案资源管理器中右键单击 BinaryData.aspx,然后单击在浏览器中查看。得到提示后,单击打开以便在浏览器中打开并呈现该文件。
注意:如果您想使用前面的代码来支持其他二进制文件类型,则必须修改 ContentType 字符串中的值,使它指定相应的文件格式。此字符串的语法的通常格式为“类型/子类型”,其中“类型”是一般内容类别,“子类型”是具体内容类型。有关支持的内容类型的完整列表,请参阅 Web 浏览器文档或当前的 HTTP 规范。下面的列表概括了一些常用 ContentType 值: • “text/HTML”
• “image/GIF”
• “image/JPEG”
• “text/plain”
• “Application/msword”(用于 Microsoft Word 文件)
• “Application/x-msexcel”(用于 Microsoft Excel 文件)