zip.js for AMD/etc, simply
Simple example of using zip.js to retrieve a list of files within a zip archive.
HTML
<script src="http://gildas-lormeau.github.io/zip.js/demos/zip.js"></script>
<script src="http://gildas-lormeau.github.io/zip.js/demos/deflate.js"></script>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<input type="file"/>
<div id="output">
</div>
JavaScript
zip.useWebWorkers = false;
function getFilesList(archive, callback, close) {
zip.createReader(new zip.BlobReader(archive), function(zipReader) {
var files = [];
zipReader.getEntries( function(entries) {
entries.forEach( function(entry) {
files.push(entry.compressedSize);
});
if (close!==false) {
zipReader.close();
callback(files);
} else {
callback(files, zipReader);
}
});
},
function(error){ alert(error) });
}
document.querySelector("input[type=file]").onchange = function(event) {
var archive = event.srcElement.files[0];
if (archive.type == "application/zip") {
getFilesList(archive, function(files) {
$("#output").text(files.join("\n\n"));
});
} else {
alert("Please select a zip file.");
}
}