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

将后端返回的网络url转成blob对象,实现pdf预览

调用e签宝返回的数据是网络链接就很让人头疼,最后想到可以转换成blob对象,便在百度上找到方法,记录一下。

祝大家节日快乐!!

代码在最后!!!!
代码在最后!!!!
代码在最后!!!!
代码在最后!!!!

**最后的预览页面还是使用pdfjs,可以看我之前写的文档就知道如何使用pdfjs啦!!**文末有链接

调用e签宝返回的数据

返回的数据是网络链接就很让人头疼,最后想到可以转换成blob对象,便在百度上找到方法,记录一下。
在这里插入图片描述

步骤展示

1.先组装数据,然后传递给转换为blob对象的方法

在这里插入图片描述

2. 初始化 axios 实例

重点设置 axios
responseType: ‘blob’,
withCredentials: false
初始化 axios 实例
缺一不可

在这里插入图片描述

3. 转换方法

在这里插入图片描述

复制即用

//最后的预览页面还是使用pdfjs,可以看我之前写的文档就知道如何使用pdfjs啦!!
//链接:https://blog.csdn.net/qq_51463650/article/details/137716310?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522924ABB9F-E18A-4CC7-B015-61A74C042A0E%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=924ABB9F-E18A-4CC7-B015-61A74C042A0E&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-137716310-null-null.nonecase&utm_term=pdfjs&spm=1018.2226.3001.4450//查看附件
const openPdfFun = (fileId) => {//e签宝 查看附件接口authManageESignApi.findUpdateStatus(fileId).then(res => {if (!res.data.fileDownloadUrl) {showToast("预览失败")}let file = {id: res.data.fileId,name: res.data.fileName,filePath: res.data.fileDownloadUrl,}getFileData(file)}).catch(e => {showToast("预览失败")})}// 重点设置 axios
// responseType: 'blob',
// withCredentials: false
// 初始化 axios 实例
const ajaxDownloadFile = axios.create({baseURL: '',responseType: 'blob',withCredentials: false,headers: {'Content-Type': 'application/json; charset=UTF-8'}
});// 请求方法
const getFileData = (file) => {return new Promise((resolve, reject) => {ajaxDownloadFile({url: file.filePath,method: 'get',params: {attname: file.fileName}}).then(res => {let pdfData = res.data;  //pdfData是后端返回的文件流pdfData.fileId = file.idpdfData.filename = file.name;let blob = new Blob([pdfData], {type: 'application/pdf;charset=UTF-8'})pdfData = window.URL.createObjectURL(blob) //创建预览路径let agreementUrl = encodeURIComponent(pdfData)router.push({path: '/filePreview', query: {url: agreementUrl, pdfData: pdfData}})// resolve(res);}).catch(error => {console.error(error);reject();});});
}

最后的预览页面还是使用pdfjs,可以看我之前写的文档就知道如何使用pdfjs啦!!

最后的预览页面还是使用pdfjs,可以看我之前写的文档就知道如何使用pdfjs啦!!链接:在这。

http://www.lryc.cn/news/468336.html

相关文章:

  • 民峰金融智能交易模型的应用与未来趋势
  • 文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑负荷时空迁移的5G基站与配电网协同优化运行 》
  • 数据结构中的堆(Heap)
  • Linux误删文件找回
  • 深入计算机语言之C++:类与对象(中)
  • 51单片机快速入门之 IIC I2C通信
  • 腾讯推出ima.copilot智能工作台产品 由混元大模型提供技术支持
  • 1024是什么日子
  • 驱动开发系列20 - Linux Graphics Xorg-server 介绍
  • 晶台推出SOP5封装的高速光耦KLM45X,提供1MBit/s超快速率
  • 软物质流变探究:从宏观微观差异,到水凝胶界面特性
  • Axure中继器单选、多选和重置
  • 微软公司用没有使用证据的商标申请驰名商标,该怎么维权?
  • 学习分布式系统我来助你!【基本知识、基础理论、设计模式、应用场景、工程应用、缓存等全包含!】
  • ubuntu查看系统版本命令
  • 使用yield压平嵌套字典有多简单?
  • express中使用morgan打印请求数据日志文件,按日期分割
  • 干货 | 2024 AI+智慧城市安全解决方案白皮书(免费下载)
  • 超越 React Query:探索更高效的数据请求策略
  • Scala trait
  • AI大法之C语言哈希表算法比较两个文件去重
  • Scala 提取器(Extractor)
  • 【主机漏洞扫描常见修复方案】:Tomcat安全(机房对外Web服务扫描)
  • MySQL数据库之——事务(Transaction)详解
  • LabVIEW提高开发效率技巧----事件日志记录
  • 整合XXL-Job任务调度平台
  • hi3536上ffmpeg带rtmp移植
  • 在PHP中,读取大文件
  • N-gram详解
  • 电路中的电源轨及地的区别和处理