想要在Ajax响应中在当前进程中下载哪个文件计数

时间:2015-07-24 10:02:12

标签: php jquery ajax

我已经制作了一个用于下载多个文件的PHP函数。 当用户调用该函数时,将下载所有文件。

我必须在用户屏幕上显示文件计数。 例如:

文件1下载.....

然后如果文件1下载完成,那么它将显示到屏幕

  

文件2下载....

我使用Ajax一次性调用该函数(不在循环中)。 我只得到了一次Ajax的响应,所以我不能替换计数。

任何帮助都会表示赞赏。感谢。

1 个答案:

答案 0 :(得分:1)

好吧,如果你只是在寻找一种逻辑,有几种方法。

单向:

构建一个PHP REST服务,您可以通过Ajax通过URL调用它。在您致电服务之后:

$.ajax({
  url: 'yourServiceUrl.com/your/rest/service/loadAll',
  success: function(data){
    for (var i = 0; i < data.files.length; i++) {
     //message that you are downliading now, maybe via growl
      $.ajax({
        url: 'yourServiceUrl.com/your/rest/service/load',
        fileNumber: data.files[i].id,
        success: function(){
           //message that file was loaded and check if loop is finished
        }
  }
}})

您并不真正需要休息服务,您也可以编写自己的服务逻辑,但是在restful服务中的URL映射是非常实用的。在我的解决方案中,“loadAll”服务返回一个JSON对象,其中存储了所有文件名等。我希望这就是你要找的东西