JSZip 提取文件对象
JSZip extract file objects
我正在通过执行以下操作使用 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
})
})
})
但是,此提取的输出是文件内容的字符串数组。我想知道是否可以获取文件对象数组作为输出,因为我稍后需要文件对象。
我试过了
new File(fileData.split('\n'), filename)
但它丢失了原始文件格式。
有什么建议吗?
File
构造函数 takes BufferSource(ArrayBuffer、Uint8Array 等)、Blob 或字符串的列表。如果您拆分 \n
上的内容,您将删除这些 \n
。 File
然后将连接每个字符串而不重新添加新行。
改为使用 blob:
return zip.files[filename].async('blob').then(function (fileData) {
return new File([fileData], filename);
})
我正在通过执行以下操作使用 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
})
})
})
但是,此提取的输出是文件内容的字符串数组。我想知道是否可以获取文件对象数组作为输出,因为我稍后需要文件对象。
我试过了
new File(fileData.split('\n'), filename)
但它丢失了原始文件格式。
有什么建议吗?
File
构造函数 takes BufferSource(ArrayBuffer、Uint8Array 等)、Blob 或字符串的列表。如果您拆分 \n
上的内容,您将删除这些 \n
。 File
然后将连接每个字符串而不重新添加新行。
改为使用 blob:
return zip.files[filename].async('blob').then(function (fileData) {
return new File([fileData], filename);
})