【问题标题】:Download a string as a file in ASP.NET在 ASP.NET 中将字符串下载为文件
【发布时间】: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


【解决方案1】:

您的代码对我来说运行良好,但您可能想尝试将其添加为点击处理程序的最后一行:

Response.End();

【讨论】:

  • 实际上是一个 HttpModule 试图 GZip 响应流,所以我必须设置 Response.Filter = null;和 Response.ClearHeaders();但是,您的回答使我想到了这一点,因为您说代码对您有用!
猜你喜欢
  • 2011-01-06
  • 2013-04-08
  • 1970-01-01
  • 2017-11-23
  • 1970-01-01
  • 2013-01-16
  • 2014-09-12
  • 1970-01-01
  • 2015-04-18
相关资源
最近更新 更多