从网页使用 asp.net 2.0 执行下载操作的最佳方法是什么?
操作的日志文件在名为 [Application Root]/Logs 的目录中创建。我有完整路径并想提供一个按钮,单击该按钮时会将日志文件从 IIS 服务器下载到用户本地 pc。
这有帮助吗:
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:我不确定这是否是最佳做法,但问题已解决。