电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

向浏览器写入二进制文件


发布日期:2024/2/19
 

如何使用 ASPNET 和 Visual C# NET 向浏览器写入二进制文件

概要

本分步指南创建了一个示例页该页演示了如何从文件中检索二进制数据然后如何使用 ASPNET 和 Visual C# 将该数据写出到浏览器中尽管此演示使用的是 Adobe Acrobat (pdf) 文件(Web 应用程序开发人员常使用这种文件)但您也可以对其他二进制文件格式使用此过程

要求

&#; Microsoft NET Framework

&#; Microsoft Windows 或 Windows XP

&#; Microsoft Internet Information Server (IIS)

使用 Visual C# 创建 ASPNET Web 应用程序

本部分演示如何创建名为 BinaryDemo 的新 ASPNET Web 应用程序 打开 Microsoft Visual Studio NET

在文件菜单上指向新建然后单击项目

在项目类型下单击 Visual C# 项目在模板下单击 ASPNET Web 应用程序

在名称文本框中键入 BinaryDemo在位置文本框中键入服务器名称如果您当前使用的是本地服务器请保留默认位置//localhost

向项目中添加 PDF 文件

若要设置项目以便在创建 ASPX 页 部分中添加和运行代码必须先向当前项目中添加一个 Adobe Acrobat (pdf) 文件若要在 Visual Studio NET 中实现这一点请按以下步骤操作 在解决方案资源管理器中右键单击该项目节点单击添加然后单击添加现有项目

浏览到系统上一个 pdf 文件的位置

单击以突出显示该文件然后单击打开

在 Visual Studio NET 解决方案资源管理器中右键单击该文件然后单击重命名重命名该 pdf 文件使之匹配下面代码中使用的文件名 Acrobatpdf

另外确保要从其上查看 aspx 页的客户机上已安装了 Adobe Acrobat Reader以便浏览器能够正确读取并呈现二进制数据可以从以下 Adobe 网站下载 Adobe Acrobat Reader

()

创建 ASPX 页

按以下步骤向当前项目中添加一个名为 BinaryDataaspx 的新 aspx 页a 在解决方案资源管理器中右键单击该项目节点单击添加然后单击添加 Web 窗体

b 将该页命名为 BinaryDataaspx然后单击打开

注意确保将您的页面添加到项目中在上一节中添加的 pdf 文件所在的级别这一点非常重要因为代码最初引用 pdf 文件时采用相对路径

在编辑器中右键单击 BinaryDataaspx然后单击查看代码

突出显示以下代码右键单击该代码然后单击复制在代码隐藏页的 Page_Load 事件中单击编辑菜单上的粘贴以粘贴代码

private void Page_Load(object sender SystemEventArgs e)

{

//Set the appropriate ContentType

ResponseContentType = Application/pdf;

//Get the physical path to the file

string FilePath = MapPath(acrobatpdf);

//Write the file directly to the HTTP content output stream

ResponseWriteFile(FilePath);

ResponseEnd();

}

在文件菜单上单击全部保存

在生成菜单上单击生成

若要运行代码请在解决方案资源管理器中右键单击 BinaryDataaspx然后单击在浏览器中查看得到提示后单击打开以便在浏览器中打开并呈现该文件

注意如果您想使用前面的代码来支持其他二进制文件类型则必须修改 ContentType 字符串中的值使它指定相应的文件格式此字符串的语法的通常格式为类型/子类型其中类型是一般内容类别子类型是具体内容类型有关支持的内容类型的完整列表请参阅 Web 浏览器文档或当前的 HTTP 规范下面的列表概括了一些常用 ContentType 值 &#; text/HTML

&#; image/GIF

&#; image/JPEG

&#; text/plain

&#; Application/msword(用于 Microsoft Word 文件)

&#; Application/xmsexcel(用于 Microsoft Excel 文件)

上一篇:Hashtable Dictionary的使用

下一篇:定义多行文本框实时的输入字数