将多个文件放在一个zip文件中,并使用javascript下载

将多个文件放在一个zip文件中,并使用javascript下载,javascript,download,zip,opencpu,Javascript,Download,Zip,Opencpu,我有多个图像地址。地址看起来像 上述地址可能在24小时后过期。所以请使用以下两个地址。 和 我想建立一个网站,把这两个图像(地址)到一个zip文件,用户可以下载zip文件。我不知道这是否可行,但我下面的代码部分工作,我可以下载zip文件,但我不能用任何图像查看器软件打开它。请帮忙,谢谢 HTML <!doctype html> <html> <head> <title>Zipper</title> <scri

我有多个图像地址。地址看起来像

上述地址可能在24小时后过期。所以请使用以下两个地址。 和

我想建立一个网站,把这两个图像(地址)到一个zip文件,用户可以下载zip文件。我不知道这是否可行,但我下面的代码部分工作,我可以下载zip文件,但我不能用任何图像查看器软件打开它。请帮忙,谢谢

HTML

<!doctype html>
<html>

  <head>
    <title>Zipper</title>
    <script src="jszip.min.js"></script>
    <script src="stat_FileSaver.min.js"></script>
    <script src="script.js"></script>
  </head>

  <body>

  </body>

</html>

拉链
JavaScript(script.js)

var url=[
'http://r.ddmcdn.com/s_f/o_1/cx_633/cy_0/cw_1725/ch_1725/w_720/APL/uploads/2014/11/too-cute-doggone-it-video-playlist.jpg',
'https://static.pexels.com/photos/7720/night-animal-dog-pet.jpg'
];
var图像=[];
var计数器=0;
//从http://stackoverflow.com/questions/6150289/how-to-convert-image-into-base64-string-using-javascript
函数convertImgToBase64URL(url,回调){
var img=新图像();
img.crossOrigin='匿名';
img.onload=函数(){
var canvas=document.createElement('canvas'),
ctx=canvas.getContext('2d'),dataURL;
canvas.height=this.height;
canvas.width=this.width;
ctx.drawImage(this,0,0);
dataURL=canvas.toDataURL();
回调(dataURL,url);
canvas=null;
};
img.src=url;
}
函数createArchive(图像){
//使用jszip
var zip=newjszip();
var img=zip.folder(“图像”);

对于(var i=0;i
images[i]。数据包含一个数据url(如
data:image/png;base64,iVBOR…
),您需要删除
data:image/png;base64,
部分以获取base64内容:

var commaIdx = images[i].data.indexOf(",");
img.file(i+".jpg", images[i].data.slice(commaIdx + 1), {base64: true});
另一方面,当图像位于不同的服务器上时,我会收到一个错误。您可能需要检查是否不会出现此问题

var commaIdx = images[i].data.indexOf(",");
img.file(i+".jpg", images[i].data.slice(commaIdx + 1), {base64: true});