我有一个反应环境,我正在将小块文件上传到s3。现在我也应该从浏览器本身上传zip文件,但处于未压缩状态。经过大量调查,我得出了以下结论,
jsZip.loadAsync(zipFileAsBuffer).then(function (zip) {
Object.keys(zip.files).forEach(function (filename) {
console.log(filename)
zip.files[filename].async('string').then(function (fileData) {
})
})
})
稍后我对fileData.byteLength进行分块时会出现错误,提示无法找到undefined的byteLength。我认为这是因为我正在使用的进程需要缓冲区,但是我从jsZip获取了blob。如何将blob转换为缓冲区,或者如果需要更好的方法,请告诉。
答案 0 :(得分:0)
我需要在现有代码中进行的唯一更改是使用“ ArrayBuffer”而不是“ string”。因此修改看起来像
jsZip.loadAsync(zipFileAsBuffer).then(function (zip) {
Object.keys(zip.files).forEach(function (filename) {
console.log(filename)
zip.files[filename].async('ArrayBuffer').then(function (fileData) {
})
})
})