【发布时间】:2011-09-11 13:42:54
【问题描述】:
下面的方法,基于this question中的代码,在浏览器中显示一个文件下载对话框,但是下载永远不会开始(它停留在0%):
protected void lnkExport_Click(object sender, EventArgs e) {
var bytes = Encoding.ASCII.GetBytes(SelectRecords()); //Data to be downloaded
Response.Clear();
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment; filename=\"test.xls\"");
using (var stream = new MemoryStream(bytes)) {
Response.AddHeader("Content-Length", stream.Length.ToString());
stream.WriteTo(Response.OutputStream);
}
}
知道发生了什么吗?
【问题讨论】:
-
那不是 Excel 文件,你不应该说它是。
-
True,SelectRecords() 实际上返回一个 HTML 表格。但是,目的是 Excel 应该打开它(它可以),最简单的方法是给它一个 .xls 扩展名。 :)
-
我相信这会导致 Excel 安全警告。
标签: asp.net file download stream response