【发布时间】:2018-11-27 10:11:52
【问题描述】:
HttpHandler 负责使用HttpResponse.TransmitFile 将文件下载分派给最终用户。下载完成后需要删除该文件,但如果在HttpResponse.End之前删除该文件,则该文件丢失,下载失败,HttpResponse.End之后的任何代码都不会执行。
在下载完成并且HttpResponse 结束后删除此文件的最佳方法是什么?
public void ProcessRequest(HttpContext context)
{
HttpResponse r = context.Response;
string filePath = context.Request.QueryString["filePath"];
string fName = context.Request.QueryString["fname"];
r.AddHeader("content-disposition", "inline; filename=\"" + fName + "\"");
r.TransmitFile(fullPath);
r.End();
}
【问题讨论】:
-
它是什么类型的文件?它有特定的内容类型吗?
-
另外,我认为没有必要在这里调用
HttpResponse.End(),事实上,我认为这个概念会抑制其他ProcessRequest范围和可能发生的处理,包括@ 987654328@。您可能应该在这里打一个Flush()电话。
标签: c# asp.net .net httphandler ihttphandler