我通过执行以下操作,用JSZip解压了一个压缩文件:
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)但它会丢失原始文件格式。
有什么建议吗?
发布于 2017-03-04 06:03:48
File构造函数takes BufferSource (ArrayBuffer、Uint8Array等)、Blob或string的列表。如果您在\n上拆分内容,您将删除这些\n。然后,File将连接每个字符串,而无需重新添加新行。
改用blob:
return zip.files[filename].async('blob').then(function (fileData) {
return new File([fileData], filename);
})https://stackoverflow.com/questions/42587203
复制相似问题