diff --git a/lib/SendSafely.js b/lib/SendSafely.js index 42ec787..8661e3c 100644 --- a/lib/SendSafely.js +++ b/lib/SendSafely.js @@ -2899,6 +2899,13 @@ function EncryptAndUploadFile (eventHandler, request) { let files = []; myself.addEncryptionKey(packageId, serverSecret, keyCode); function handleResponse(index, parts, files, fileUtil) { + if (files[index] === undefined) { + myself.eventHandler.raise(myself.SERVER_ERROR_EVENT, { + error: 'INTERNAL_ERROR', + message: 'getFileIDs: file at index ' + index + ' is undefined' + }); + return; + } var serverFilename = (files[index].name === undefined) ? myself.defaultFileName : files[index].name; myself.responseParser.processAjaxDataRaw(myself.createFileID(packageId, directoryId, files[index], serverFilename, parts, uploadType, myself.async), function (resp) { if(resp.response === "SUCCESS") { @@ -2953,7 +2960,7 @@ function EncryptAndUploadFile (eventHandler, request) { } let _loop = function _loop(i, _p) { - _p = _p.then(function (_) { + return _p.then(function (_) { return new Promise(function (resolve) { let f = filesPath[i]; @@ -2968,18 +2975,18 @@ function EncryptAndUploadFile (eventHandler, request) { } else { let fileUtil = new FileUtil({filePath: f, callback: function(){}}); fileUtil.init().then(function(file) { - files.push(file); + files[i] = file; handleResponse(i, file.totalParts, files, fileUtil); resolve(); }); } }); }); - p = _p; }; - for (let i = 0, p = Promise.resolve(); i < filesPath.length; i++) { - _loop(i, p); + let p = Promise.resolve(); + for (let i = 0; i < filesPath.length; i++) { + p = _loop(i, p); } };