Am working on an offline application using HTML5 and jquery for mobile. i want to back up files from the local storage using jszip. below is a code snippet of what i have done...
if (localStorageKeys.length > 0) {
for (var i = 0; i < localStorageKeys.length; i++) {
var key = localStorageKeys[i];
if (key.search(_instrumentId) != -1) {
var data = localStorage.getItem(localStorageKeys[i])
var zip = new JSZip();
zip.file(localStorageKeys[i] + ".txt", data);
var datafile = document.getElementById('backupData');
datafile.download = "DataFiles.zip";
datafile.href = window.URL.createObjectURL(zip.generate({ type: "blob" }));
}
else {
}
}
}
in the code above am looping through the localstorage content and saving ezch file in a text format. the challenge that am facing is how to create several text files inside DataFiles.zip as currently am only able to create one text file inside the zipped folder. Am new to javascript so bare with any ambiguity in my question. thanks in advance.
Adding to @Jonathon Reinhart answer,
You could also set both file name and path at the same time
Just keep calling
zip.file()
.Look at the example from their documentation page (comments mine):
The important thing is to understand the code you've written - learn what each line does. If you do this, you'd realize that you just need to call
zip.file()
again to add another file.If you receive a list of files ( from ui or array or whatever ) you can make a compress before and then archive. The code is something like this:
this worked for me at multiple json files. Maybe it helps.