将文件下载到客户端浏览器



我正在编写一个简单的测试页面,通过点击按钮从浏览器下载文本文件。我犯了一个非常奇怪的错误,这是我以前从未见过的。有什么想法吗?

错误发生在Response.End();上,文件永远不会到达客户端浏览器

代码:

  string filePath = "C:\test.txt";
  FileInfo file = new FileInfo(filePath);
  if (file.Exists)
  {
    Response.ClearContent();
    Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
    Response.AddHeader("Content-Length", file.Length.ToString());
    Response.ContentType = "text/plain";
    Response.TransmitFile(file.FullName);
    Response.End();
  }

错误:

无法计算表达式,因为代码已优化,或者本机帧位于调用堆栈的顶部。

尝试将其更改为.

 Response.Clear();
 Response.ClearHeaders();
 Response.ClearContent();
 Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
 Response.AddHeader("Content-Length", file.Length.ToString());
 Response.ContentType = "text/plain";
 Response.Flush();
 Response.TransmitFile(file.FullName);
 Response.End();

如果您对下载的文件名有问题,只需对上述解决方案稍作补充。。。

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

这将返回准确的文件名,即使其中包含空格或其他字符。

相关内容

最新更新