【发布时间】:2018-04-17 01:23:30
【问题描述】:
我正在使用 angularjs 尝试将多个文件上传到我的共享点 API,所以我做了什么我使用带有 $q.all 的 foreach 语句来等待所有内容完成上传,但不知何故,我的代码在第一次上传时已经被认为已解决文件。
factory.UploadFilesByBatch = function(arrayBuffer, folderName) { var 承诺 = [];
angular.forEach(arrayBuffer, function(item) {
// factory.GetFormDigest().then(function(data) {
var deferred = $q.defer();
// promises.push(deferred);
console.log("UploadFilesByBatch Try - " + item.fileName + "Uploading")
$http({
url: webUrl + "web/getfolderbyserverrelativeurl('" + folderLocation + "')/files/add(overwrite=true, url='" + item.fileName + "')",
method: "POST",
headers: {
"Accept": "application/json;odata=verbose",
"X-RequestDigest": xrequestDigest,
"content-Type": "application/json;odata=verbose"
},
data: item.fileBuffer,
transformRequest: []
}).then(function(result) {
console.log("UploadFilesByBatch Success - " + item.fileName + "Uploaded")
item.sharepointFileLocation = result.data.d.ServerRelativeUrl;
deferred.resolve(item);
}, function(result, status) {
console.log("UploadFilesByBatch Error - " + item.fileName + "Failed")
console.log(JSON.stringify(result))
deferred.reject(result);
});
promises.push(deferred);
// })
})
return $q.all(promises);
};
【问题讨论】:
标签: angularjs