私は、javascript zip.jsライブラリを使用しています。私は、zipに複数のファイルが追加された例を見つけることができません。zip.jsで複数のファイルをzipに追加するには?
これは私のコードですが、「壊れた」ジッパーを生成します。
var len = results.rows.length, i;
var k=1;
zip.createWriter(new zip.BlobWriter(), function(writer) {
for (i = 0; i < len; i++){
// get the image url from a sqlite request
url = results.rows.item(i).url;
var img = new Image();
img.onload = function() {
var a = document.createElement('a');
a.href = this.src;
var filename= a.pathname.split('/').pop(); // filename.php
timest = new Date().getTime();
// use a TextReader to read the String to add
writer.add(timest+".jpg", new zip.Data64URIReader(getBase64Image(img)), function() {
// onsuccess callback
k++;
if(k==len){
setTimeout(function(){
writer.close(function(blob) {
// blob contains the zip file as a Blob object
$('#test').attr("href", window.URL.createObjectURL(blob));
$('#test').attr("download", "woeii.zip");
});
},1000);
}
}, function(currentIndex, totalIndex) {
// onprogress callback
});
};
img.src = url;
}
});
どのような考え方でも問題ありませんか? :)
Thxをを! :)これは動作するようです。私は最後の1つの問題があり、最後の画像だけがジップに何度も保存されます。私はそれがモデル関数から来ていると思います。私はそれを調べている。 –
数分前にコードに変更を加えました。画像ローダでは、URLの前に 'var'があることを確認してください。そうしないと、' onload'関数は変数を正しく取得しません。 – Scott
さらなるヘルプが必要な場合はお知らせください。 – Scott