如何在asp.net中实现文件下载

如何在asp.net中实现文件下载

How to implement a file download in asp.net

从网页使用asp.net 2.0进行下载操作的最佳方法是什么?

在名为[Application Root] / Logs的目录中创建操作的日志文件。 我有完整的路径,并想提供一个按钮,单击该按钮会将日志文件从IIS服务器下载到用户本地PC。


这是否有帮助:

http://www.west-wind.com/weblog/posts/76293.aspx

1
2
3
4
Response.ContentType ="application/octet-stream";
Response.AppendHeader("Content-Disposition","attachment; filename=logfile.txt");
Response.TransmitFile( Server.MapPath("~/logfile.txt") );
Response.End();

Response.TransmitFile是发送大文件的可接受方式,而不是Response.WriteFile。


http://forums.asp.net/p/1481083/3457332.aspx

1
2
3
4
5
6
7
8
9
10
11
12
13
string filename = @"Specify the file path in the server over here....";
FileInfo fileInfo = new FileInfo(filename);

if (fileInfo.Exists)
{
   Response.Clear();
   Response.AddHeader("Content-Disposition","attachment; filename=" + fileInfo.Name);
   Response.AddHeader("Content-Length", fileInfo.Length.ToString());
   Response.ContentType ="application/octet-stream";
   Response.Flush();
   Response.TransmitFile(fileInfo.FullName);
   Response.End();
}


更新:

初始代码

1
Response.AddHeader("Content-Disposition","inline;attachment; filename=" + fileInfo.Name);

具有"内联;附件",即"内容处置"的两个值。

不知道它确切的启动时间,但是在Firefox中,只有正确的文件名没有出现。 出现文件下载框,其中包含网页名称及其扩展名(pagename.aspx)。 下载后,如果将其重命名为实际名称; 文件成功打开。

按照此页面,它以先到先得的方式运行。 将值更改为attachment仅解决了此问题。

PS:我不确定这是否是最佳做法,但问题已解决。


推荐阅读