Skip to content

Instantly share code, notes, and snippets.

@ahgood
Last active April 12, 2024 03:07
Show Gist options
  • Save ahgood/bfc57a7f44d6ab7803f3ee2ec0abb980 to your computer and use it in GitHub Desktop.
Save ahgood/bfc57a7f44d6ab7803f3ee2ec0abb980 to your computer and use it in GitHub Desktop.
Download multiple images with html file by pure JavaScript(jszip.js)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript" src="//stuk.github.io/jszip/dist/jszip.js"></script>
<script type="text/javascript" src="//stuk.github.io/jszip-utils/dist/jszip-utils.js"></script>
<script type="text/javascript" src="//stuk.github.io/jszip/vendor/FileSaver.js"></script>
<img src="google.png" id="google" />
<img src="smile.gif" id="smile" />
<script>
window.onload = function(){
function getBase64Image(img) {
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
var dataURL = canvas.toDataURL("image/png");
return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
}
var img1 = getBase64Image(document.getElementById("google"));
var img2 = getBase64Image(document.getElementById("smile"));
var zip = new JSZip();
zip.file("Hello.html", "Hello World\n");
zip.folder("images");
var img = zip.folder("images");
img.file("google.png", img1, {base64: true});
img.file("smile.gif", img2, {base64: true});
zip.generateAsync({type:"blob"}).then(function(content) {
saveAs(content, "edm8.zip");
});
}
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment