【发布时间】:2015-10-25 22:10:28
【问题描述】:
我有一个功能,目前可以下载多个图像并将它们保存到用户的“下载”文件夹(仅适用于 Chrome)
我想将此功能带到下一步,并将这些图像放在一个 zip 文件中。
以下是我当前代码的示例。我想将我的代码与我在网上找到的 JSZip API here 合并。
我已经为此 JSZip API 完成了凉亭安装,并将脚本包含在我的 html 中。
这是我的代码,可以完美地一次下载多个 SINGLE 图像:
$scope.downloadPhotos = function() {
var photoUrls = [];
for (var x = 0; x < $scope.$parent.photos.length; x++) {
var p = $scope.$parent.photos[x];
if (p.isChecked) {
photoUrls.push($scope.bucketUrl() + p.photoUrl);
}
}
saveImage(photoUrls);
};
/*----this function saveImage works great (only Chrome)-----*/
function saveImage(urls) {
var link = document.createElement('a');
link.setAttribute('download', null);
link.style.display = 'none';
document.body.appendChild(link);
for (var i = 0; i < urls.length; i++) {
link.setAttribute('href', urls[i]);
link.click();
}
document.body.removeChild(link);
}
这里是创建包含内容的 zip 文件的 JSZip API 代码示例:
function create_zip() {
var zip = new JSZip();
zip.add("hello1.txt", "Hello First World\n");
zip.add("hello2.txt", "Hello Second World\n");
content = zip.generate();
location.href = "data:application/zip;base64," + content;
}
现在我只是想知道如何将两者结合起来以将我的图像放入 zip 文件中。 感谢您的帮助!
【问题讨论】:
-
看起来是因为我有从 amazonS3 提取的图像 url,我没有将它们存储在可访问的地方 - ng-src 正在加载这些照片。因此,如果可能,我需要弄清楚如何从 ng-src 获取数据,然后运行邮政编码。有没有办法将数据从 ng-src 获取到我的函数中?
标签: javascript angularjs image download zipfile