使用此指令:ng-file-upload
如何逐个按顺序(按顺序,排队)上传多个文件?我正在考虑链式承诺,但我不知道如何将承诺和指令结合起来。
This is an example上传多个文件,但所有文件都在同一时间而不是按顺序上传。
这是我的代码:
for (var i = 0; i < files.length; i++) {
Upload.upload({
url: config.base+'/upload/',
data: {
file: files[i],
}
}).then(function (response) {
vm.reloadImatges();
vm.upload.progress=0;
vm.upload.files--;
}, function (resp) {
}, function (evt) {
vm.upload.progress = parseInt(100.0 * evt.loaded / evt.total);
});
}
答案 0 :(得分:2)
我找到了一个解决方案,也许不是最好的,但它确实有效 http://jsfiddle.net/erLax2fm/2/
以下代码:
var doSomething = function (index) {
var defer = $q.defer();
Upload.upload({
url: url: config.base+'/upload/',
data: {
file: objects[index]
}
}).then(function (response) {
objects[index].processed = true;
if (objects[++index]) {
defer.resolve(index);
} else {
defer.reject();
}
}, function (response) {
}, function (evt) {
vm.upload.progress = parseInt(100.0 * evt.loaded / evt.total);
});
defer.promise.then(doSomething);
};
doSomething(0);