Ajax / jQuery查找用户是否完成了下载

时间:2010-02-19 10:29:54

标签: javascript jquery ajax download

以下是我要做的事情:我正在制作一个包含测试的自定义文本文件。这个测试对用户来说是独一无二的,我不希望我的服务器堆叠所有这些文本文件。

有没有办法使用Ajax / JavaScript / jQuery来查找用户是否已完成下载以及是否已获得返回值(如果已完成,则为1),以便可以将响应发送回PHP文件可以从服务器上删除该文件(实时)?

我知道使用PHP有很多方法可以做到这一点。有点像用户注销时运行清理等等但我想尝试使用上面的方法,因为它可以有许多其他可能很酷的应用程序。我尝试过大多数搜索引擎,但它们与我需要的东西没什么关系。

4 个答案:

答案 0 :(得分:1)

为什么需要将它们存储在文件中?只需使用PHP脚本或创建测试并将其直接输出给用户。这就是下载完成后它将被删除的方式。

答案 1 :(得分:0)

如果重要,您可能希望用户使用下载文件的哈希返回到您的服务器。如果哈希匹配,你知道两件事:
1.用户成功下载文件
2.现在可以删除文件

答案 2 :(得分:0)

这很简单。我不知道如何让PHP网页发送给用户,而不是让PHP制作文本文件并强制将其发送给用户。这会产生在临时文件夹中包含如此多文本文件的问题。

现在,如果测试需要说15个章节,每个章节都有文本或HTML格式文件,那么脚本会整齐地压缩所有这些文件并将它们发送给用户。如果用户完成下载,我再次陷入同样的​​问题我试图让任何类型的脚本在临时目录中实时删除临时zip或文本文件。

如果我能MD5使用JavaScript下载文件,我欢迎它,这将是解决问题的黑客解决方案,但JavaScript将如何获得对用户下载文件夹的root访问权限?如果我没有弄错的话,那里有安全问题。希望这有助于解决这个问题。

答案 3 :(得分:0)

我在这里使用我创建的jQuery File Download plugin为您提供了一个很好的解决方案。它允许您通过成功和失败回调完成执行Ajax文件下载(实际上不可能)的行为。简而言之,您可以使用Success回调(表示文件下载成功)来执行Ajax发布回服务器以删除文件。请查看blog post以获取有关如何使用Success回调选项的示例,或demo在显示模式的上下文中使用这些回调以通知用户正在进行的操作。