谷歌浏览器无法通过url对pdf文件实现预览
背景
之前接口返回的是Blob数据流,前端通过转化,由window.open打开转化的Blob Url可以实现在谷歌浏览器上预览
问题
现接口返回的是由OSS存放资源的Url,前端可以通过window.open直接下载,但是不可预览了,与需求不符合
解决
// result?.link 为接口返回的url
fetch(result?.link, {
method: 'get',
responseType: 'arraybuffer',
})
.then((r) => {
if (r.status !== 200) {
return r.json()
}
return r.arrayBuffer()
})
.then((blobRes) => {
// // 生成 Blob 对象,设置 type 等信息
let file = new Blob([blobRes], { type: 'application/pdf;base64' })
let fileURL = URL.createObjectURL(file)
window.open(fileURL)
})
.catch((err) => {
console.error(err)
})