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
,您将删除这些\n
。 File
然后将连接每个string,而不重新添加新行。
改用blob:
return zip.files[filename].async('blob').then(function (fileData) { return new File([fileData], filename); })