当前位置: 首页 > article >正文

【js】记录预览pdf文件

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

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
在这里插入图片描述
文件预览
在这里插入图片描述


http://www.kler.cn/a/454621.html

相关文章:

  • C# GDI+数码管数字控件
  • 编译笔记:vs 中 正在从以下位置***加载符号 C# 中捕获C/C++抛出的异常
  • 通过交叉实现数据触底分页效果new IntersectionObserver()(html、react、vue2、vue3)中使用
  • 【乐企文件生成工程】根据特定要素动态选择需要生成的发票板式文件实现
  • LSTM实现天气模型训练与预测
  • 【只生一个好 - 单例设计模式(Singleton Pattern)】
  • 如何从 0 到 1 ,打造全新一代分布式数据架构
  • Jenkins 命令行多线程并发下载制品包
  • PPT画图——如何设置导致图片为600dpi
  • 青岛市勘察测绘研究院携手云轴科技ZStack获评专有云典型案例
  • Qt工作总结02 <设置工具栏ToolBar>
  • 对于标签推荐算法的应用
  • fpga系列 HDL:跨时钟域同步 shift register同步 + SPI中的同步方式
  • vue.js 组件化开发 根组件
  • 通俗易懂!使用Excel和TF实现Transformer
  • 光谱相机的工作原理
  • 使用Python pickle模块进行序列化
  • 视听语言与手机拍摄技巧
  • SuperMap iClient3D for Cesium等高线标注
  • VSCode 插件开发实战(十四):创建交互式引导教程
  • Qt QByteArray做CRC16-modbus校验
  • 低代码开发 实战转型案例一览
  • 【论文阅读】AllMatch: Exploiting All Unlabeled Data for Semi-Supervised Learning
  • 结构型设计模式
  • 智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之1
  • 基于python网络爬虫的搜索引擎设计