Response输出或下载服务器端数据和文件
2010-12-30 13:06:26| 分类: Asp.Net|字号 订阅
以下是自己应用中的一些总结:
一、直接向页面输出二进制数据文件
“contents”就是要输出的数据内容,类型为Byte[],使用Response.BinaryWrite将直接将数据内容输出
到当前页面中,这通常用于显示图片、Word、PDF格式的文件,需要注意的是,客户端需要安装相应文件
的阅读器,否则会有输出错误。
Response.Clear();
Response.ContentType = "APPLICATION/OCTET-STREAM";
Response.BinaryWrite(contents);
Response.End();
二、下载二进制数据文件
“fileName”是下载的文件名,Response.BinaryWrite依文件名指定的文件格式将二进制数据向客户端输
出,显示文件下载对话框,与直接向页面输出数据不同的是,这里为Response头添加了“Content-
Disposition”值。
Response.Clear();
Response.ContentType = "APPLICATION/OCTET-STREAM";
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode
(fileName, System.Text.Encoding.UTF8));
Response.BinaryWrite(contents);
Response.End();
三、下载文件
“fullPath”是服务器端存储的文件的物理路径加文件名,Response.ContentType定义了输出类型,注意
这里定义的输入类型需与要下载的文件类型一致,因为文件已存在,使用Response.TransmitFile或
Response.WriteFile将文件传输到客户端。
Response.Clear();
Response.ContentType = "application/x-excel";
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode
(fileName, System.Text.Encoding.UTF8));
Response.TransmitFile(fullPath);
Response.End();