我有一个从模板生成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);
}
为什么我的计算机可以正常工作,而另一台计算机却没有?
如何删除生成的文件以及何时删除?我正在考虑做一个计划任务,按日期检查,在特定日期之前检查所有文件,并删除它们,但还有其他解决方案吗?
答案 0 :(得分: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();
但是如果文件是以dinamically方式生成的,那么你应该考虑使用Response.BinaryWrite
方法。