У меня есть ионное приложение, в котором мне нужно создать zip некоторых файлов на устройстве и отправить их на сервер узла.
Я пытаюсь использовать JSZip [http://stuk.github.io/jszip/] для создать zip файлов на устройстве. У меня есть полный путь к каждому из файлов, которые отправляются функции в массиве filesList.
// complete path of all the files that need to be zipped is in filesList array
// Eg., file:///var/mobile/Containers/Data/Application/BACCA40A-56C4-4BE5-8C5D-1576960BD14B/Library/NoCloud/1473447800255.zip
var zipFiles = function(filesList) {
var uniqueFilename = Date.now();
var zip = new JSZip();
// create a zip with a unique name
var zipFolder = zip.folder(uniqueFilename);
//add files to the zip
filesList.forEach(function(file) {
zipFolder.file(file);
})
var promise = null;
if (JSZip.support.uint8array) {
promise = zipFolder.generateAsync({type : "uint8array"});
return promise;
} else {
promise = zipFolder.generateAsync({type : "string"});
return promise;
}
}
затем в вызывающей функции
myAPI.zipFiles(docList)
.then(function(result) {
console.log('Zip created '+JSON.stringify(result));
.catch(function(error) {
console.log('Error while creating zip '+error);
});
Я хотел бы создать zip в памяти (не нужно сохранять его на устройстве) и отправить его на node.
Приведенный выше код приводит к пустому почтовому индексу, хотя массив filesList содержит 5 файлов, и путь к этим файлам также действителен.
В документации сказано, что данные, возвращаемые методом generateAsync, имеют вид Uint8Array. Нужно ли мне что-то делать, чтобы преобразовать это в почтовый индекс?