1

我有一个从模板生成 excel 文件的 Web 应用程序。

当新文件流式传输到客户端时,我删除了该文件。这在我的计算机上工作正常,但无论出于何种原因,当从另一台计算机访问网站时,文件在流式传输到客户端之前被删除,因此文件始终为空(0 字节)这是代码:

try
{
  Response.Clear();
  Response.ClearHeaders();
  Response.ContentType = "application/ms-excel";
  Response.AddHeader("content-disposition", "attachment;filename=" + newFN + ".xlsx");                            
  Response.TransmitFile(DestFile);
  Response.Flush();
  Response.End();
}
finally
{
  File.Delete(DestFile);
}

为什么这在我的电脑上可以正常工作,而在另一台电脑上却不行?

我该怎么做才能删除生成的文件以及何时删除?我正在考虑像计划任务一样,按日期检查特定日期之前的所有文件,然后删除它们,但是还有其他解决方案吗?

4

1 回答 1

2

以下对我有用:

Response.Clear();
Response.ClearHeaders();
Response.ContentType = "application/ms-excel";
Response.AddHeader("content-disposition", "attachment;filename=" + newFN + ".xlsx");                            
Response.TransmitFile(DestFile);
Response.Flush();
File.Delete(DestFile);
HttpContext.Current.ApplicationInstance.CompleteRequest();

Response.BinaryWrite但是如果文件正在动态生成,您应该考虑使用该方法。

于 2013-01-29T17:16:39.270 回答