2

我正在使用带有 PHP 的jQuery 多文件上传器(https://github.com/blueimp/jQuery-File-Upload )

我想在所有文件上传后刷新上传页面,我使用的是基本加 UI,请告诉我是否有任何简单的方法来实现它

4

4 回答 4

11

使用 done 和 fail 事件以及一些计数器。在选项文档中找到这些事件。

var fileCount = 0, fails = 0, successes = 0;

$('#fileupload').fileupload({
    url: 'server/php/'
}).bind('fileuploaddone', function(e, data) {
  fileCount++;
  successes++;
  console.log('fileuploaddone');
  if (fileCount === data.getNumberOfFiles()) {
    console.log('all done, successes: ' + successes + ', fails: ' + fails);
    // refresh page
    location.reload();
  }
}).bind('fileuploadfail', function(e, data) {
  fileCount++;
  fails++;
  console.log('fileuploadfail');
  if (fileCount === data.getNumberOfFiles()) {
    console.log('all done, successes: ' + successes + ', fails: ' + fails);
    // refresh page
    location.reload();
  }
});
于 2013-09-05T13:33:13.767 回答
4

您可以使用该stop事件。它相当于全局ajaxStop事件(但仅适用于文件上传请求)。

stop: function(e){
      location.reload();
}
于 2013-09-05T14:06:08.413 回答
2

我已经使用了这段代码,到目前为止它运行良好。

$('#fileupload').bind('fileuploadstop', function (e) {
  console.log('Uploads finished');        
    location.reload(); // refresh page
    });
于 2017-02-26T12:39:12.190 回答
1

我使用了 ryan 的代码,但是有一个问题。data.getNumberOfFiles() 的值随着文件上传而减少,而 fileCount 增加,所以我的上传脚本在上传过程中被中断,此时 data.getNumberOfFiles() 等于 fileCount。

以下是我如何调整 ryan 的脚本,现在它就像一个魅力一样工作:

var fileCount = 0, fails = 0, successes = 0;
var _totalCountOfFilesToUpload = -1;

$('#fileupload').bind('fileuploaddone', function (e, data) {
    if (_totalCountOfFilesToUpload < 0) {
         _totalCountOfFilesToUpload = data.getNumberOfFiles();
    }
    fileCount++;
    successes++;
    if (fileCount === _totalCountOfFilesToUpload) {
        console.log('all done, successes: ' + successes + ', fails: ' + fails);
        // refresh page
        location.reload();
    }
}).bind('fileuploadfail', function(e, data) {
    fileCount++;
    fails++;
    if (fileCount === _totalCountOfFilesToUpload) {
        console.log('all done, successes: ' + successes + ', fails: ' + fails);
        // refresh page
        //location.reload();
    }
});

我希望这对其他人也有帮助!:)

于 2015-03-28T21:34:25.383 回答