Skip to content

Commit 9b28fe7

Browse files
committed
New: File zip unzip helper.
1 parent fdbc4d0 commit 9b28fe7

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

jquery/unzip.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// Import JSZip if using module-based JavaScript (for npm installs)
2+
import JSZip from "jszip";
3+
4+
// Function to unzip a file
5+
async function unzipFile(file) {
6+
const zip = new JSZip();
7+
8+
try {
9+
// Load the zip file
10+
const loadedZip = await zip.loadAsync(file);
11+
12+
// Extract each file
13+
const extractedFiles = {};
14+
await Promise.all(
15+
Object.keys(loadedZip.files).map(async (filename) => {
16+
const content = await loadedZip.files[filename].async("string"); // 'string' or 'blob' based on your need
17+
extractedFiles[filename] = content;
18+
})
19+
);
20+
21+
console.log("Extracted Files:", extractedFiles);
22+
return extractedFiles;
23+
} catch (err) {
24+
console.error("Error unzipping file:", err);
25+
return null;
26+
}
27+
}
28+
29+
// Usage example:
30+
// Assuming `fileInput` is a file input element
31+
document.getElementById('fileInput').addEventListener('change', async (event) => {
32+
const file = event.target.files[0];
33+
if (file) {
34+
const unzippedContent = await unzipFile(file);
35+
console.log(unzippedContent);
36+
}
37+
});
38+

0 commit comments

Comments
 (0)