通过XMLHttpRequest和window.open在浏览器中打开文件流pdf以及下载pdf

1、浏览器预览pdf:

首先通过接口获取文件流数据

下发是源码

var xhr = new XMLHttpRequest();

xhr.open("GET", 'http://www.baidut.com/downloadFile');

xhr.responseType = "blob";

xhr.onload = function(){

if(this.status == 200){

var blob = new Blob([this.response],{type: 'applocation/pdf;chartset=UTF-8'});

var url = window.URL.createObjectURL(blob);

window.open(url, "_blank");

}

};

xhr.send();

当然我这里使用的是原生的,如果可以的也可以使用axios、ajax都是可以的,反正都是通过接口获取文件流进而通过blob不同的类型转换用于浏览器的展示;blob的type有很多,还有图片image/png等等

2、浏览器下载文件:

浏览器下载文件和预览差不多

相关推荐
Marshmallowc1 分钟前
React useState 数据不同步?深度解析无限滚动中的“闭包陷阱”与异步更新丢失问题
前端·javascript·react.js·闭包·fiber架构
某柚啊2 分钟前
解决 minimatch 类型报错问题
前端·webpack·npm
前端 贾公子4 分钟前
npm 发包配置双重身份验证
前端·javascript·微信小程序·小程序·github
xkxnq13 分钟前
第四阶段:Vue 进阶与生态整合(第 48 天)(Vue 与 Axios 整合:实现 HTTP 请求的封装与拦截)
前端·vue.js·http
CappuccinoRose26 分钟前
React框架学习文档(三)
前端·react.js·ui·数组·标签·属性·jsx
LBJ辉30 分钟前
CSS - code
前端·css
旭日初扬30 分钟前
N32H762IIL调试中遇到的错误
前端
辰风沐阳31 分钟前
ES6 新特性: 解构赋值
前端·javascript·es6
猫头鹰源码(同名B站)33 分钟前
基于django+vue的时尚穿搭社区(商城)(前后端分离)
前端·javascript·vue.js·后端·python·django
weixin_4277716139 分钟前
npm 绕过2FA验证
前端·npm·node.js