【js】记录预览pdf文件

接口调用拿到pdf的文件流,用blob处理这个文件流拿到url,使用window.open跳转新的窗口进行预览

javascript 复制代码
api({
	dataType: 'blob',
}).then(res =>{
	if(res.code === 0){
	   this.previewPDF(
	     res,
	     'application/pdf;charset=utf-8',
	     'pdf文件名'
	   )
	 }
})

previewPDF (res, type, fname) {
    try {
      if(!res|| !res.data || !res.headers) {
        throw new Error("Invalid response")
      }
      const fileType = res.headers['content-type'] || type
      console.log(res.headers['content-type'])  
      const blob = new Blob([res.data], {type: fileType})
      console.log(blob)  
      const urlObject = URL.createObjectURL(blob)
      console.log(urlObject ) 
      window.open(urlObject, '_blank');
    }catch(err) {
      throw new Error("预览失败")
    }
}

接口返回的数据

打印res.headers['content-type']

响应头

请求头

打印blob

打印urlObject

文件预览

相关推荐
二川bro30 分钟前
第57节:Three.js企业级应用架构
开发语言·javascript·架构
sali-tec31 分钟前
C# 基于halcon的视觉工作流-章62 点云采样
开发语言·图像处理·人工智能·算法·计算机视觉
芳草萋萋鹦鹉洲哦1 小时前
【vue】调用同页面其他组件方法几种新思路
前端·javascript·vue.js
巴啦啦臭魔仙1 小时前
uniapp scroll-view自定义下拉刷新的坑
前端·javascript·uni-app
晨枫阳1 小时前
不同语言的元组对比
java·前端·javascript
这人很懒没留下什么2 小时前
SpringBoot2.7.4整合Oauth2
开发语言·lua
ZHOUZAIHUI2 小时前
WSL(Ubuntu24.04) 安装PostgreSQL
开发语言·后端·scala
欧阳x天2 小时前
C++入门(二)
开发语言·c++
CappuccinoRose2 小时前
MATLAB学习文档(二十八)
开发语言·学习·算法·matlab
爱敲代码的loopy2 小时前
MATLAB函数全称解析:旋转翻转找数字
开发语言·matlab