【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

文件预览

相关推荐
程序猿_极客1 天前
【2025 年最新版】Java JDK 安装与环境配置教程(附图文超详细,Windows+macOS 通用)
java·开发语言·windows·macos·jdk
二哈喇子!1 天前
BOM模型
开发语言·前端·javascript·bom
二哈喇子!1 天前
Vue2 监听器 watcher
前端·javascript·vue.js
二哈喇子!1 天前
空指针异常
开发语言
咚为1 天前
Rust Print 终极指南:从底层原理到全场景实战
开发语言·后端·rust
%xiao Q1 天前
GESP C++五级-202406
android·开发语言·c++
Psycho_MrZhang1 天前
Neo4j Python SDK手册
开发语言·python·neo4j
Traced back1 天前
# C# + SQL Server 实现自动清理功能的完整方案:按数量与按日期双模式
开发语言·c#
sin22011 天前
MyBatis的执行流程
java·开发语言·mybatis
web3.08889991 天前
1688图片搜索API,相似商品精准推荐
开发语言·python