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

什么是最好的方式来实现,从网页下载使用asp.net 2.0的行动?

操作的日志文件在名为[Application Root] / Logs的目录中创build。 我有完整的path,并希望提供一个button,单击时将从IIS服务器下载日志文件到用户本地电脑。

这是否有帮助:

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

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

 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(); } 

更新:

最初的代码

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

具有“内联;附件”,即内容处理的两个值。

不知道它到底什么时候开始,但在Firefox中只有正确的文件名没有出现。 文件下载框显示网页名称及其扩展名( pagename.aspx )。 下载后,如果你重新命名为实际名称; 文件成功打开。

按照这个页面 ,它以先到先得的方式运作 。 将值更改为attachment只能解决问题。

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