【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

文件预览

相关推荐
笋笋~19 分钟前
el-tree 拖拽事件隔离:实现句柄独立控制,区域分离
javascript·vue.js·elementui
Tiger_shl26 分钟前
C# 托管对象、非托管对象 讲解
开发语言·c#
HappyAcmen26 分钟前
10.常见报错排查与基础调试
开发语言·python
码农的神经元35 分钟前
配电网智能决策平台:从风险感知到自愈控制的 Python 实现
开发语言·python
xlq2232242 分钟前
46.线程池
linux·开发语言
LF男男1 小时前
Action- C# 内置的委托类型
java·开发语言·c#
记录无知岁月1 小时前
【C/C++】头文件包含问题分析
c语言·开发语言·c++
神仙别闹1 小时前
基于Python实现(控制台)个人信息系统
开发语言·python
HoneyMoose1 小时前
Discourse 更加依赖 tag 的扁平化管理
开发语言