我正在使用带有 PHP 的jQuery 多文件上传器(https://github.com/blueimp/jQuery-File-Upload )
我想在所有文件上传后刷新上传页面,我使用的是基本加 UI,请告诉我是否有任何简单的方法来实现它
我正在使用带有 PHP 的jQuery 多文件上传器(https://github.com/blueimp/jQuery-File-Upload )
我想在所有文件上传后刷新上传页面,我使用的是基本加 UI,请告诉我是否有任何简单的方法来实现它
使用 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();
}
});
您可以使用该stop
事件。它相当于全局ajaxStop
事件(但仅适用于文件上传请求)。
stop: function(e){
location.reload();
}
我已经使用了这段代码,到目前为止它运行良好。
$('#fileupload').bind('fileuploadstop', function (e) {
console.log('Uploads finished');
location.reload(); // refresh page
});
我使用了 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();
}
});
我希望这对其他人也有帮助!:)