javascript - 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 config 中设置 responseType 以响应为 arrayBuffer。
const config = {
responseType: 'arraybuffer',
headers: {
'content-type': 'application/json',
},
};
推荐阅读
- java - 回收站视图未与 Tablayout 正确对齐
- ffmpeg - 如何减慢 ffmpeg 编码速度?
- python - 如何从数据库中返回值
- python - 查找文本的正则表达式
- xml - 如何在 Marklogic 中使用元素值中的特殊字符加载 xml 文件?
- java - Selenium webdriver 正在查看 Chrome.exe 的错误路径
- r - 如何从包含数字和单词的 url 获取电影 ID?
- html - 我该如何处理这样的表格边框?
- java - 我收到“线程“主”java.lang.NoSuchMethodError 中的异常”错误
- android - 如何在对话框片段中从 LayoutInflater 切换到 AsyncLayoutInflater?