我有一个zip文件,里面包含许多文件夹,每个文件夹里都有一个或多个png文件,我想将它们呈现到DOM。
zip.loadAsync(file) .then(function(zip) {
zip.file('textfile.txt')
.async("string")
.then(function (content) { console.log(content); });
}, function (e) {
console.log("Error reading " + file.name + " : " + e.message); });
我能够读取文本文件,但是当涉及到获取图像文件的二进制数据时就遇到了问题。
我的想法是,我应该使用URL.createObjectURL(blob)来创建对文件的引用,然后为zip中的每个图像渲染<img id="output" src="blob:null/341e9aeb-a794-4033-87f5-e8d075e9868a">
。
我该怎么从zip中获取这些图像?
谢谢!
XMLHttpRequest
获取图像仅用于演示目的。您已经在 zip 实例中拥有了图像。答案的主要要点是使用.async("base64")
以base64
字符串形式检索文件,然后添加必要的data:
协议、MIME
类型和base64
来创建一个data URI
。您还可以从base64
创建一个Blob
。 - guest271314.async("arraybuffer")
,然后创建一个Blob
并在img
的src
中使用Blob URL
。 - guest271314.async("arraybuffer")
、Blob()
和URL.createObjectURL()
的方法。 - guest271314