如何知道下载何时完成

时间:2009-10-18 09:04:17

标签: c# asp.net download

嗨,我正在创建网上商店。在这个shope人们在线必须购买带有zip扩展名的文件。他们用信用卡或其他方法付款获取密钥并下载产品。我怎么知道他们何时完成产品下载? 感谢

3 个答案:

答案 0 :(得分:2)

不幸的是,由于某些客户端可能不会立即下载文件(例如,Downloadmanagers将下载分为几个部分下载),因此没有真正好的方法可以做到这一点。

选项包括:

  • 如果对您来说非常重要,它只能下载一次:您可以 根本不支持恢复。那么你 可以记录文件是否完全存在 下载(最后一个字节 已经发送)。如果下载量很小,这可能会很好。
  • 否则你可以提供一些恩惠 数据(我们通常允许下载 客户端下载5倍的大小 真正的下载)并记录每一个 下载尝试。

您不应只计算下载的字节数(因为下载可能会中断)。而且只是确定是否所有部分都已下载一次(也因为下载可能已中断)

只是为了澄清:所有这些意味着您必须编写自己的下载处理程序(文件服务器)。

答案 1 :(得分:0)

您可以使用适用于http或ftp的自定义文件服务器,并在客户端收到最后一个文件片段后发送通知。

所有其他选项都存在问题;客户端可能使用下载管理器下载文件,因此您甚至无法注册任何浏览器事件(如果有的话)。

答案 2 :(得分:0)

自定义服务器应用程序似乎确实是一个解决方案, 或者可能是某种脚本。

普通的http服务器不会通知连接结束, 但是可能,如果你在cgi / php / asp / *脚本中生成输出, 你用cgi / php / asp / *脚本语言读取文件 将其发送到输出。当你到达文件的末尾时,你 做通知,然后结束脚本。

当你这样做时,它只会检测完全下载的文件, 如果连接中途中断,则不会标记 已下载的文件。

'cgi-script'可以是编译的c程序,(或任何其他语言 对于这个问题)。无论如何编译代码。编译程序 将提供比解释脚本解决方案更好的性能。