背景:正好最近碰到了这种需求,记录下来,方便以后查看。

后端返回的文件流数据如下图所示:

后台返回数据.png

一、pdf的预览

一开始的时候百度了很多方法,有建议用pdfJs插件的,有iframe嵌套实现的,最后发现了一种及其简便的实现方法:

pdfPreview(url){

this.$http({

url: `account/registerOpen/${url}`,

method: 'get',

responseType: 'arraybuffer', //一定要设置响应类型,否则页面会是空白pdf

params: { accountId: id, lang: 'en_US' }

}).then(res => {

const binaryData = [];

binaryData.push(res);

//获取blob链接

this.pdfUrl = window.URL.createObjectURL(new Blob(binaryData, { type: 'application/pdf' }));

window.open(this.pdfUrl);

}

});

}

}

二、pdf的下载

下载也挺简单的,代码如下:

pdfDownload(url){

const id = sessionStorage.getItem('idPdf').replace(/"/g, '');

this.$http({

url: `account/registerOpen/${url}`,

method: 'get',

responseType: 'arraybuffer',

params: { accountId: id, lang: 'en_US' }

}).then(res => {

// 下载pdf

if (url === 'PerPdf/download' || url === 'PerCrsPdf/download' || url === 'PerWbenContractPdf/download') {

//type类型可以设置为文本类型,这里是pdf类型

this.pdfUrl = window.URL.createObjectURL(new Blob([res], { type: `application/pdf` }));

const fname = `个人开户资料`; // 下载文件的名字

const link = document.createElement('a');

link.href = this.pdfUrl;

link.setAttribute('download', fname);

document.body.appendChild(link);

link.click();

}

});

}

vue 后台返回的文件流进行预览_vue项目-pdf预览和下载,后台返回文件流形式相关推荐

  1. vue导出excel加一个进度条_vue项目中如何把数据导出成excel文件

    Loading... 关于vue中如何把数据导出成excel文件 ### 1. 安装依赖 ``` yarn add file-saver yarn add xlsx yarn add script-l ...

  2. php 复制文件夹并压缩到最小_【实用】PHP实现下载与压缩文件的一些方法的封装与整理...

    [实用]PHP实现下载与压缩文件的一些方法的封装与整理 龙行    PHP    2019-3-11    1590    1评论 一.PHP实现打包zip并下载功能 $file_template = ...

  3. vue 怎么在字符串中指定位置插入字符_vue项目中在可编辑div光标位置插入内容的实现代码...

    vue项目中在可编辑div光标位置插入内容 html: @dragstart="dragStart($event, item.labelName)" draggable='true ...

  4. vue 父组件获取接口值传到子组件_vue 项目中 “父组件” 异步获取数据之后,传递给子组件不显示...

    有两个组件:一个为 transaction(父组件),一个为 transactionList (子组件): 上图为一个列表页,为父组件,在父组件里面的data中定义了数据列表, template中: ...

  5. Keil 5(MDK 5)中的 Pack Installer下载不了库文件包的解决替代方法(在Keil官网下载Packs库文件)

    想要使用keil自带的Pack Installer安装一些需要的软件包,但是Pack Installer经常出现各种问题,导致安装不了,比如: 其实我们可以先去网站把库文件包下载下来,然后自己导入就可 ...

  6. Spring Boot如何实现在线预览?这个开源项目可以学习一下,支持99%常用文件!...

    Spring Boot上传文件,相信你一定会了.如果还不会的小伙伴,可以先看看之前的分享: Spring Boot 2.x基础教程:实现文件上传 Spring Boot 2.x基础教程:多文件的上传 ...

  7. 在线预览Word、PDF、图片(IE、Edge、Google、FireFox等主流浏览器)

    支持IE.Edge.Google.FireFox等主流浏览器处理在线预览Word.PDF.JPG.JPEG等格式文件或图片. var id=ID; if(id!=undefined){var hasI ...

  8. 前端在线预览word,excel,pdf

    前端在线预览word,excel,pdf 预览Word 预览pdf 预览Excel 预览Word 微软的在线预览功能,可以预览word.ppt.Excel.PDF 局限: 需要外网能访问文件,如果是只 ...

  9. 原生JS实现文件自定义位置盖章功能并导出PDF

    原生JS实现文件自定义位置盖章功能并导出PDF 实现原理 在需要签章的文件上面创建一个div,可以通过移动这个div来确定签章位置,然后在通过获取这个位置把章子替换到这,并导出PDF,可以多次盖章! ...

最新文章

  1. linux平台调试终端,10款Linux平台上优秀的调试器,总有一款适合你!
  2. 多变异位自适应遗传算法(MMAdapGA)的算法原理、算法步骤和matlab实现
  3. 一个小型的网页抓取系统的架构设计
  4. DCMTK:类DVPSIPCClient的示例消息服务器
  5. git常用命令(克隆、分支、tag标签、推送、日志查看,常用命令总结)、将本地代码第一次提交到远程git仓库、过滤掉不提交的内容
  6. linux基本操作命令(centos)
  7. Windows 2000缓冲区溢出入门
  8. html两行文字右侧对齐,HTML在同一行左右对齐文本
  9. jdk1.8 HashMap ConcurrentHashMap
  10. 专科python应届生工资多少-作为一个应届毕业生月薪15K?你哪来的自信?
  11. Nginx Upload Module 上传模块
  12. Linux 编程 —— 进程间的通信 之 消息队列(zmq socket 学习笔记)
  13. 实现进程互斥需要遵循的原则
  14. 微信小程序如何实现切换主题(更改皮肤)
  15. python与cad交互_python 使用pyautocad操作AutoCAD
  16. 数据结构物理存储方式
  17. linux新建磁盘分区
  18. 多功能报警杆在高速服务区的应用
  19. CRM下午茶(16)-SNS就是朋友关系管理
  20. AllWinner T113 ddr测试

热门文章

  1. Postgres使用Copy命令将表导出成csv文件的遇到Permission Denied等错误
  2. UltraEdit v18及注册
  3. Django发HTML邮件
  4. LOOPS HDU - 3853 (概率dp):(希望通过该文章梳理自己的式子推导)
  5. spring单元测试报错:Failed to load ApplicationContext 的解决方法
  6. 支付宝支付框js代码
  7. HDU 5727 Necklace
  8. 浏览器下载图片的方法,修改报文来实现。
  9. 用C#开发的双色球走势图(原创)值得园友拥有(二)接上一篇
  10. GameBryo Shader 组织方式