【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

文件预览

相关推荐
zhangbao90s1 分钟前
Tauri 与 Electron 对比:性能、包大小及实际权衡
javascript·node.js
Hello姜先森3 分钟前
Kotlin日常使用函数记录
android·开发语言·kotlin
FL16238631295 分钟前
[python]通过whl文件安装pyheif安装教程和简单使用案例
开发语言·python
你的人类朋友22 分钟前
飞速入门 Axon:Node.js 微服务的轻量级选择
javascript·后端·node.js
发誓要做读书人27 分钟前
生物信息Rust-01
开发语言·笔记·rust
Moment37 分钟前
拆包的艺术:Webpack SplitChunksPlugin 执行流程全流程揭秘 🤩🤩🤩
前端·javascript·webpack
那小孩儿39 分钟前
最简单的new Date()展示,也能做优化
前端·javascript·性能优化
pink大呲花41 分钟前
Vue.js 中 v-if 的使用及其原理
前端·javascript·vue.js
努力学习的小廉44 分钟前
【C++】 —— 笔试刷题day_14
开发语言·c++
漫步企鹅1 小时前
【GDB】调试程序的基本命令和用法(Qt程序为例)
开发语言·qt·gdb·调试