base-64-zip2
by velo_ninja
HTML
<!DOCTYPE html>
<html>
<head>
<title>Multiple PDFs/Base64 to Zip</title>
</head>
<body>
<input type="file" id="pdfFile" accept=".pdf" multiple>
<textarea id="base64Input" rows="5" cols="50" placeholder="Enter Base64 strings"></textarea>
<button onclick="addFiles()">Add Files</button>
<button onclick="addBase64()">Add Base64 Package</button>
<button onclick="downloadZip()">Download All as Zip</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.5.0/jszip.min.js"></script>
<script>
var files = [];
var base64Packages = [];
function addFiles() {
var input = document.getElementById('pdfFile');
var selectedFiles = input.files;
for (var i = 0; i < selectedFiles.length; i++) {
files.push(selectedFiles[i]);
}
console.log('Files added:', files);
}
function addBase64() {
var base64Input = document.getElementById('base64Input').value.trim();
if (base64Input) {
base64Packages.push(base64Input);
console.log('Base64 package added:', base64Input);
document.getElementById('base64Input').value = ''; // Clear input after adding
} else {
alert('Please enter a Base64 string.');
}
}
function downloadZip() {
if (files.length === 0 && base64Packages.length === 0) {
alert('No files or Base64 packages added.');
return;
}
var zip = new JSZip();
// Add files
files.forEach(function(file, index) {
var reader = new FileReader();
reader.onload = function(e) {
zip.file(file.name, e.target.result);
if (index === files.length - 1) {
processBase64Packages(zip);
}
};
reader.readAsDataURL(file);
});
// If no files, directly process base64 packages
if (files.length === 0) {
processBase64Packages(zip);
}
}
function processBase64Packages(zip) {
...