【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

文件预览

相关推荐
如影随从8 分钟前
07-ArcGIS For JavaScript--隐藏参数qualitySettings(memory和lod控制)
开发语言·javascript·arcgis·memorylimit·lodfactor
大霸王龙29 分钟前
Python中PDF转Word的技术
python·pdf·word
愚愚是个大笨蛋36 分钟前
自定义VUE指定,实现鼠标悬停显示提示面板,离开元素或面板后面板消失
前端·javascript·vue.js
CSNMD37 分钟前
VueRouter之HelloWorld
前端·javascript·vue.js
米饭「」40 分钟前
C语言实现贪吃蛇游戏
c语言·开发语言·游戏
小七蒙恩1 小时前
java下载文件流,不生成中间文件。
java·开发语言·状态模式
计算机_CodeMind1 小时前
基于微信小程序的校园点餐平台的设计与实现(源码+SQL+LW+部署讲解)
开发语言·微信小程序·springboot·课程设计
️○-1 小时前
React之从0开始(3)
前端·javascript·react.js
练习两年半的工程师1 小时前
使用React Redux实现异步请求
前端·javascript·react.js
screct_demo1 小时前
详细讲一下React中的路由React Router
前端·javascript·react.js