我正在使用带有PHP的jQuery Multifile上传器(https://github.com/blueimp/jQuery-File-Upload)
我希望在上传所有文件后刷新上传页面,我使用的是基本加UI,请告诉我是否有任何简单的方法来实现它
答案 0 :(得分:11)
使用完成和失败事件以及一些计数器。在options documentation中找到了这些事件。
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();
}
});
答案 1 :(得分:3)
您可以使用stop
事件。它等同于全局ajaxStop
事件(但仅限于文件上载请求)。
stop: function(e){
location.reload();
}
答案 2 :(得分:2)
我使用过这段代码,到目前为止效果还不错。
$('#fileupload').bind('fileuploadstop', function (e) {
console.log('Uploads finished');
location.reload(); // refresh page
});
答案 3 :(得分:1)
我使用了ryan的代码,但是有一个问题。当fileCount增加时,data.getNumberOfFiles()的值随着文件的上传而减少,所以我的上传脚本在我上传的中间被中断,其中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();
}
});
我希望这对其他人也有帮助! :)