首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSZip提取文件对象

JSZip提取文件对象
EN

Stack Overflow用户
提问于 2017-03-04 03:43:38
回答 1查看 3.5K关注 0票数 3

我通过执行以下操作,用JSZip解压了一个压缩文件:

代码语言:javascript
复制
jszip.loadAsync(zipFile)
['then'](function(zip) {
    return bluebird.map(Object.keys(zip.files), function (filename) {
        // converts the compressed file to a string of its contents
        return zip.files[filename].async('string').then(function (fileData) {
            // fileData is a string of the contents
        })
    })
})

但是,此提取的输出是文件内容的字符串数组。我想知道是否有可能获得一个文件对象数组作为输出,因为我稍后需要文件对象。

我试着去做

代码语言:javascript
复制
new File(fileData.split('\n'), filename)

但它会丢失原始文件格式。

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-04 06:03:48

File构造函数takes BufferSource (ArrayBuffer、Uint8Array等)、Blob或string的列表。如果您在\n上拆分内容,您将删除这些\n。然后,File将连接每个字符串,而无需重新添加新行。

改用blob:

代码语言:javascript
复制
return zip.files[filename].async('blob').then(function (fileData) {
    return new File([fileData], filename);
})
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42587203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档