JSZip提取文件对象

我通过执行以下操作来解压缩JSZip的zip文件:

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 }) }) }) 

但是,此提取的输出是文件内容的string数组。 我想知道是否有可能获得一组文件对象作为输出,而不是因为我以后需要文件对象。

我曾试图做

 new File(fileData.split('\n'), filename) 

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

有什么build议么?

File构造函数获取 BufferSource(ArrayBuffer,Uint8Array等),Blob或string的列表。 如果您将内容分割到\n ,您将删除这些\nFile然后将连接每个string,而不重新添加新行。

改用blob:

 return zip.files[filename].async('blob').then(function (fileData) { return new File([fileData], filename); })