【发布时间】:2011-09-30 17:39:17
【问题描述】:
我有一个 ASP.NET 应用程序,它允许用户从我的 Web 服务器下载文件。 我跟踪下载,并且只允许一个文件的这么多下载。
我有以下代码为我的用户调用下载(单击按钮):
string sURL = sExternalSequenceFullPath + Session["sFilename"].ToString();
FileInfo fileInfo = new FileInfo(sURL);
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileInfo.Name);
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.Flush();
Response.WriteFile(fileInfo.FullName);
我的问题是浏览器为用户提供了下载(保存/保存)或取消的能力。
有没有办法知道用户是否取消了?如果他们确实取消了,我不想计算下载量。
如果没有,还有其他方法可以[不向客户端机器添加任何内容]。
【问题讨论】:
-
一些横向思考:将下载限制在一个时间范围内,而不是一个数字?下载文件后,他们无论如何都可以制作 n 份副本...
-
@Michael:也许吧。我们正在尝试限制使用的带宽量。
-
SO 社区:谢谢大家的回答!在我看来,未来需要有一种方法让回调通知用户采取了哪些操作(保存、取消等)。