在网站中,用户可以上传包含一个图像和xml文件的zip。上传压缩文件后,网站将解压该文件,并将这些文件转换为ArrayBuffer。然而,在解压后,它给我的是对象而不是文件,因此fileReader不能工作。
有人能在这方面帮我吗?以下是我的代码:
var zip = new JSZip();
zip.loadAsync(file.raw, {base64: true}).then(function(content) {
var img = Object.entries(data.files).filter(([fileName]) =>
fileName.endsWith('.png'),
);
var xml = Object.entries(data.files).filter(([fileName]) =>
fileName.endsWith('.xml'),
);
var reader = new FileReader();
reader.readAsArrayBuffer(img[0][1]);
reader.onload = function(e){
console.log(this.result)
}
});我还尝试了console.log(img)和console.log(内容),但输出不是预期的结果。
console.log(img);
console.log(content);// img Output:
(2) [Array(2), Array(2)]
0: (2) ["sample.png", i]
1: (2) ["__MACOSX/._sample.png", i]
length: 2
__proto__: Array(0)
// content Output:
i {files: {…}, comment: null, root: "", clone: ƒ}
clone: ƒ ()
comment: null
files:
sample.png: i {name: "sample.png", dir: false, date: Fri Jun 19 2020 01:04:54 GMT+0800 (中国标准时间), comment: null, unixPermissions: 33188, …}
sample.xml: i {name: "sample.xml", dir: false, date: Wed Jul 01 2020 21:56:20 GMT+0800 (中国标准时间), comment: null, unixPermissions: 33188, …}
__MACOSX/._sample.png: i {name: "__MACOSX/._sample.png", dir: false, date: Fri Jun 19 2020 01:04:54 GMT+0800 (中国标准时间), comment: null, unixPermissions: 33188, …}
__MACOSX/._sample.xml: i {name: "__MACOSX/._sample.xml", dir: false, date: Wed Jul 01 2020 21:56:20 GMT+0800 (中国标准时间), comment: null, unixPermissions: 33188, …}
__proto__: Object
root: ""
__proto__: Object发布于 2020-07-02 11:13:15
通过以下代码解决了此问题:
zip.file(img[0][0]).async("arraybuffer")
.then(function(ArrayBuffer){
console.log("Image ArrayBuffer: ");
console.log(ArrayBuffer);
});https://stackoverflow.com/questions/62670607
复制相似问题