如何使用 JSZip 将 ZIP 存档中的文件读取为字符串
想改为读取为 ArrayBuffer?请阅读如何使用 JSZip 将 ZIP 存档中的文件读取为 ArrayBuffer
在 JSZip 中,你可以使用以下命令将压缩文件读取为 JavaScript 字符串
read_zip_as_string.js
zip.file("filename.txt").async("string").then(function(data) {
// data 是一个字符串
// TODO 你的代码放在这里,这只是一个示例
console.log(data);
})完整示例
这基于我们关于如何使用 HTML5 和 JSZip 解压 ZIP 存档中的文件的文章,该文章使用 HTML5 文件输入读取本地文件。你可以上传任何 .docx 文件进行测试:
read_zip_example.html
<html>
<body>
<input type="file" id="myfile" onchange="onMyfileChange(this)" />
<script src="https://unpkg.com/[email protected]/dist/jszip.js" type="text/javascript"></script>
<script type="text/javascript">
function onMyfileChange(fileInput) {
if(fileInput.files[0] == undefined) {
return ;
}
var filename = fileInput.files[0].name;
var reader = new FileReader();
reader.onload = function(ev) {
JSZip.loadAsync(ev.target.result).then(function(zip) {
zip.file("word/document.xml").async("string").then(function(data) {
// data 是一个字符串
// TODO 你的代码放在这里!
console.log(data)
})
}).catch(function(err) {
console.error("Failed to open", filename, " as ZIP file:", err);
})
};
reader.onerror = function(err) {
console.error("Failed to read file", err);
}
reader.readAsArrayBuffer(fileInput.files[0]);
}
</script>
</body>
</html>Check out similar posts by category:
Javascript
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow