我正在尝试跟踪文件被下载的次数,以及谁下载了它。由于无法从“文件另存为”对话框中获取任何点击事件,我想知道处理程序是否真的可以知道下载是否被取消或用户选择下载它?
此链接ASP.NET 文件下载 - 检测用户是否取消下载?建议使用另一个确认对话框来完成工作,但我认为这可能不是一种用户友好的方法。
我不排除错误单击下载按钮的可能性,所以我只想知道是否真的有某种方法可以知道何时增加下载次数。
更新:
在做了一些阅读之后,我现在有了这段代码。
int maxCount = (int)Math.Ceiling((file.Length - startBytes + 0.0) / 1024);
int i;
for (i = 0; i < maxCount && context.Response.IsClientConnected; i++)
{
context.Response.BinaryWrite(_BinaryReader.ReadBytes(1024));
context.Response.Flush();
}
if (i < maxCount)
{ }
else
{
//Update Increment
}
我仍在尝试通知取消事件,这样如果用户没有真正下载它,我就不会更新增量。但我注意到,尽管按下取消,增量仍在更新。此次下载所涉及的文件很小,大约 100kb 或更多。
在我看来,for 循环已经完成,beforeResponse.IsClientConnected
变为 false。我可以改变什么来完成这项工作?任何指针将不胜感激。