我使用jsZip将多个文件保存为zip并下载。我无法弄清楚如何从urls数组中输出该迭代的数组名称。
每个urls数组都应该是var filename = "";
内的文件名,但是无法找到打印出每个数组名称的方法。
var zip = new JSZip();
var count = 0;
var urls = [
"FirstFile.pdf",
"SecondFile.pdf",
];
urls.forEach(function(url)
{
//if iteration #1, then echo firstFile.pdf below,
//if iteration #2 echo SecondFile.pdf below so it saves the files inside the zip.
var filename = "output urls array here as name";
JSZipUtils.getBinaryContent(url, function (err, data) {
if(err) {
throw err; // or handle the error
}
zip.file('./temp/' + filename, data, {binary:true});
count++;
if (count == urls.length)
{
zip.generateAsync({type:'blob'}).then(function(content)
{
$( ".download" ).click(function() {
saveAs(content, 'FileZip.zip');
});
});
}
});
});
答案 0 :(得分:1)
urls.forEach(function(url)
{
//if iteration #1, then echo firstFile.pdf below,
//if iteration #2 echo SecondFile.pdf below so it saves the files inside the zip.
var filename = url;
});
答案 1 :(得分:1)
文件名存储在url
参数中,该参数传递给与foreach
一起使用的匿名函数。
因此,要在任何迭代中访问文件名,只需使用url
var filename = url;
事实上,你真的不需要第二个名为filename的变量,你可以简单地修改后面的行看起来像
zip.file('./temp/' + url, data, {binary:true});