这篇文章主要介绍了ASP.NET实现推送文件到浏览器的方法,可实现将文件推送到浏览器供用户浏览或下载的功能,需要的朋友可以参考下
本文实例讲述了ASP.NET实现推送文件到浏览器的方法。分享给大家供大家参考。具体分析如下:
这里主要实现从服务器到浏览器,推送文件,提供用户下载/浏览的功能。
提示: 在AJAX UpdatePanel里面将无效。如果代码从按钮单击事件中被调用,该按钮需要在 AJAX UpdatePanel的外部。
/// <summary>
/// Downloads (pushes) file to the client browser.
/// **** NOTE **** Cannot be done from inside an AJAX UpdatePanel control.
/// </summary>
/// <param name="fullFilePath">The full file path of the file</param>
protected
void
DownloadFile(
string
fullFilePath)
{
// Gets the File Name
string
fileName = fullFilePath.Substring(fullFilePath.LastIndexOf(
'\\'
) + 1);
byte
[] buffer;
using
(FileStream fileStream =
new
FileStream(fullFilePath, FileMode.Open))
{
int
fileSize = (
int
)fileStream.Length;
buffer =
new
byte
[fileSize];
// Read file into buffer
fileStream.Read(buffer, 0, (
int
)fileSize);
}
Response.Clear();
Response.Buffer =
true
;
Response.BufferOutput =
true
;
Response.ContentType =
"application/x-download"
;
Response.AddHeader(
"Content-Disposition"
,
"attachment; filename="
+ fileName);
Response.CacheControl =
"public"
;
// writes buffer to OutputStream
Response.OutputStream.Write(buffer, 0, buffer.Length);
Response.End();
}