「踩坑小笔记」
普通pdf的url地址可以直接通过打开新的窗口进行预览(window.open,a标签等),但现在需要携带token等参数,只能通过接口获取流文件, 这里采用了URL.createObjectUR通过blob对象创建了一个新的URL
const getUrl = (res) => { // res: 接口返回的blob对象
const binaryData = [];
binaryData.push(res);
const url = URL.createObjectURL(
new Blob(binaryData, { type: "application/pdf" })
// 成功获得了一个可以直接在新窗口打开的url: blob:http://localhost:8080/5bd23492fd7-4d42-a174-cf59ca6ae31c
window.open(url);
1、用这种方式创建出来的url无法手动指定有意义的文件名(目前没找到合适的方式指定文件名)
2、当不再需要createObjectURL创建的URL 对象时,记得调用 URL.revokeObjectURL()
方法来释放。
3、 vue3目前无法直接使用vue-pdf(没有仔细了解,有看到需要修改源码才能使用)