Asp.net mvc 是否可以检测文件是否实际下载
假设我有一个返回Asp.net mvc 是否可以检测文件是否实际下载,asp.net-mvc,fileresult,Asp.net Mvc,Fileresult,假设我有一个返回FileResult的控制器操作方法。是否可以检测文件是否已完全下载到客户端 public ActionResult GetFile(int id) { DownloadInfo data = provider.GetInfo(id); this.provider.MarkDownloadStart(id); return File(Server.MapPath(data.Filename), "application/pdf"); } 我确实在调用操
FileResult
的控制器操作方法。是否可以检测文件是否已完全下载到客户端
public ActionResult GetFile(int id)
{
DownloadInfo data = provider.GetInfo(id);
this.provider.MarkDownloadStart(id);
return File(Server.MapPath(data.Filename), "application/pdf");
}
我确实在调用操作时存储信息,但这只意味着有人启动了下载。它没有给我任何关于服务器的信息是否下载完成
我还设置了内容处理头,这样文件就不会直接在浏览器中打开,而是由浏览器要求打开/保存。这使客户端更容易保存文件
我的想法
我想不可能直接检测到下载已经发生了。但有没有可能通过其他方式来实现:
iframe
的iframe
,所以它可以查看文件是否已完成下载是否可以在服务器上检测到客户端完全完成了文件下载,并且在下载之间没有取消文件下载?您可以使用cookies。给你。以下是该过程中涉及的一些步骤:
窗口.setInterval
定期查询是否存在cookie并检查其值希望这对您有所帮助,但由于用户取消了下载,所以完成流媒体传输肯定会发生。。。所以这并不是说下载已经完成了。但更重要的是,我对在客户端检测已完成的下载并不感兴趣,而是在服务器上。。。我已更新了我的问题以反映这一事实。是否要在服务器上检测客户端是否已完成或取消下载?恐怕这是不可能的。嗯。。。不可能似乎很容易回答;)但也可能是唯一可能和真实的答案。请注意,这是不鼓励的,因此答案应该是搜索解决方案的终点(而不是参考文献的另一个中途停留,随着时间的推移往往会变得陈旧)。请考虑在这里添加一个独立的概要,将链接作为参考。