Jas*_*wer 11 javascript image download zipfile angularjs
我有一个功能,当前下载多个图像并将其保存到用户"下载"文件夹(仅适用于Chrome)
我想将此功能用于下一步,并将这些图像放在一个zip文件中.
下面是我当前代码的示例.我希望与JSZip API我在网上找到我合并的代码在这里.
我已经完成了这个JSZip API的bower安装,并将脚本包含在我的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);
}
Run Code Online (Sandbox Code Playgroud)
这里是JSZip API代码示例,用于创建包含内容的zip文件:
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;
}
Run Code Online (Sandbox Code Playgroud)
现在我只是想知道如何将两者结合起来将我的图像放入zipfile.谢谢你的帮助!
小智 9
我把它放在一起,让你压缩一组图像 url。
https://jsfiddle.net/jaitsujin/zrdgsjht/
您可以通过修改此行来管理 zip 文件夹结构
filename = filename.replace(/[\/\*\|\:\<\>\?\"\\]/gi, '').replace("httpsi.imgur.com","");
Run Code Online (Sandbox Code Playgroud)
你应该看到这个例子。目前,您只需要求浏览器触发文件的下载。如果您想在客户端创建 zip 文件,您的 js 代码需要使用 ajax 调用访问文件的内容(如果它们不存储在同一服务器上,您将遇到 CORS 问题)。
无需复制/粘贴整个代码,示例:
responseType = "arraybuffer" ,但如果您只支持最新的浏览器,则可以轻松使用 a )| 归档时间: |
|
| 查看次数: |
15616 次 |
| 最近记录: |