以下是不熟悉的 Pizzip 的文档:https ://github.com/open-xml-templating/pizzip/tree/master/documentation
另外,我正在使用 VueJS (2)、ES6、TS
我正在尝试使用 Axios 下载单个文件,然后使用 Pizzip 将它们放入一个 zip 文件中。
async getFile(mat: Material): Promise<any> {
try {
const file = await axios.get(mat.url, { responseType: 'arraybuffer' })
return file.data
} catch (error) {
console.log(error)
return {}
}
}
这是给我ArrayBuffer
正确的。然后我有以下内容:
async getZip() {
let zip = new pizzip()
this.materials.forEach(async mat => {
const record = await PortalService.getFile(mat)
console.log(record) // logs the ArrayBuffer
zip.file(mat.name, record)
})
let files = zip.generate({ type: 'blob' })
return saveAs(files, `${this.request.id}-files.zip`)
}
Pizzip 文档说的data
参数zip.file()
可以是 type ArrayBuffer
,但是当我下载 zip 时它只是一个空存档。我尝试使用可选options
参数 for zip.file()
,但没有任何效果。先感谢您。