ASP.Net将文件下载到客户端浏览器
我正在编写一个简单的testing页面,通过单击button将文本文件下载到浏览器。 我遇到了一个我从未见过的非常奇怪的错误。 有什么想法吗?
“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(); }
错误:
无法评估expression式,因为代码已经过优化,或者本地框架位于调用堆栈之上。
尝试改变它。
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();
如果您遇到下载文件名称的问题,只需稍微补充上述解决scheme…
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + file.Name + "\"");
这将返回确切的文件名,即使它包含空格或其他字符。