前端预览pdf文件(后端返回pdf文件流)
怎么判断后端是不是返回的文件流?
我的后端给的接口直接在浏览器输入完整地址会自动下载pdf文件,这样就是返回的pdf文件流,亲试比较方便的有iframe和直接window.open临时地址.
window.open临时地址.
fetch(
`${this.$config.VUE_APP_BASE_API}/api/ai/knowledge/api/preview?fileId=${data.fileId}`,//你的pdf文件下载路径
{
headers: {
Authorization: getToken(),
},
method: "GET",
responseType: "arraybuffer",//一定是这个 前面一直填的"blob"一直不成功,改成这个就好了
}
)
.then((res) => res.blob())
.then((res) => {
const binaryData = [];
binaryData.push(res);
//获取blob链接
this.pdfSrc = window.URL.createObjectURL(
new Blob(binaryData, { type: "application/pdf" })
);
window.open(this.pdfSrc); //此地址也可直接填入iframe的src中以达到预览的目的
});
iframe
<iframe style="width: 800px; height: 500px" :src="pdfSrc"></iframe>
</div>