Vor kurzem hatte ich das gleiche Problem zu lösen und eine Lösung mit JSZipUtils gefunden hatte.
Die Lösung finden Sie hier http://plnkr.co/edit/vWARo0dXbkgzmjyoRNi0?p=preview
Ich habe zwei Dateien, die Ich mag würde über den Browser des Benutzers zip und downloaden, und ich rufe die Funktion getBinaryContent(path, callback)
auf beiden Dateien. Der Pfad hier ist der Speicherort der Datei.
Die beiden Dateien sind eine .wav-Datei und eine .json-Datei. Jeder von ihnen sollte unterschiedlich behandelt werden und daher sollten Sie {base64:true,binary:true}
für die .wav-Datei und {binary:true}
für die JSON-Datei als Argument für die Funktionsdatei JSZip verwenden.
kann der Code auch hier
var file_confirmation=[false,false];
var file_name=["test1.wav","test.json"];
var urlList =["test.wav","test.json"];
var filenameSave ="myZip";
function zipFiles(id,urls)
{
zip = new JSZip();
JSZipUtils.getBinaryContent(urls[0],function (err, data)
{
if(!err)
{
var dic={base64:true,binary:true}; //WAV File Encoding
zip.file(file_name[0], data, dic);
file_confirmation[0]=true;
downloadZipIfAllReady(id);
}
});
JSZipUtils.getBinaryContent(urls[1],function (err, data)
{
if(!err)
{
var dic={binary:true}; //JSON File Encoding
zip.file(file_name[1], data, dic);
file_confirmation[1]=true;
downloadZipIfAllReady(id);
}
});
}
function downloadZipIfAllReady(id)
{
if(file_confirmation.every(function(element, index, array) {return element;}))
{
zip.generateAsync({type:"blob"})
.then(function(content)
{
var a = document.querySelector("#"+id);
a.download = filenameSave;
a.href = URL.createObjectURL(content);
a.click();
});
}
}
$(document).ready(function()
{
zipFiles("a_id",urlList);
})
zip Zieldateien auf ** Serverseite ** und das Rück url nach Klick –
über diese URL gefunden wird, dann lade Was Sie durch „mehr Download-Urls bedeuten "? – guest271314
@YinGang aber lassen Sie uns sagen, dass ich bereits die Download-Links für die Dateien in einem Array gespeichert haben. Wie würde ich diese komprimieren, damit der Benutzer nur die Datei herunterladen kann? – Dude1310