我们有提供下载的代码:
public class downloadRelease : IHttpHandler {
public void ProcessRequest (HttpContext context) {
-- snip --
context.Response.Clear();
context.Response.ContentType = "application/octet-stream";
context.Response.AddHeader("Content-Disposition", "attachment; filename=" + OriginalFileName);
context.Response.WriteFile(Settings.ReleaseFileLocation + ActualFileName);
// Log download
Constructor.VersionReleaseDownload.NewReleaseDownload(ActualFileName);
它工作正常,除了日志下载代码似乎在下载开始时就运行,而不是像我们预期的那样在下载完全完成时运行。
有人可以解释这是为什么吗?如何更改它以便它只在完成时记录?我们不想计算部分下载。
最佳答案
这blog post与您的问题完全相同,也有解决方案。
Response.Buffer = false;
Response.TransmitFile("Tree.jpg");
Response.Close();
// logging here
关于c# - 仅在下载后计算一次下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7534150/