jszip返回压缩文件夹中的PDF文件为空或空白



我有一个vue应用程序,想要压缩jszip文件夹中的一组PDF文件。但在这个尝试中,我只是使用一个文件进行测试,但不知何故zip下载正常。但是当打开其中的PDF文件时,内容是空白的。我使用axios从后端获取缓冲区字节,这实际上没有问题。但我不知道为什么在jszip压缩后它是空白的。我正在使用文件保存程序(另存为功能)下载压缩文件。

下面是我的脚本:
const user = this.getSelectedUser(values.employee);
const url = `some-url`;
await ReportRepository.getReport(url).then(({ data }) => {
console.log(Buffer.from(data).toString('base64'));
zip.file('timesheet.pdf', Buffer.from(data).toString('base64'), { binary: true });
zip.generateAsync({ type: 'blob' }).then((content) => {
saveAs(content, 'timesheet.zip');
});
}).catch((er) => {
console.log(er);
});

哪一部分是我错了,我该如何克服这些问题,或者我可以改变或做些什么?

我只是得到问题的问题,如果有人可能有同样的问题,我想分享:

我忘记在axios上的res配置中设置responseType以响应为arrayBuffer。

const config = {
responseType: 'arraybuffer',
headers: {
'content-type': 'application/json',
},
};

最新更新