【Vue】后端返回文件流,前端预览文件

javascript 复制代码
let date;
        request({
          url: this.$route.query.url,
          method: 'get',
          responseType: 'blob',
        }).then(resp => {
          date = resp
          this.path = window.URL.createObjectURL(new Blob([resp], {type: "application/pdf"}))
        }).catch((e) => {
          //旧版本浏览器下的blob创建对象
          window.BlobBuilder = window.BlobBuilder ||
            window.WebKitBlobBuilder ||
            window.MozBlobBuilder ||
            window.MSBlobBuilder;
          if (e.name == 'TypeError' && window.BlobBuilder) {
            if (date) {
              BlobBuilder.append(date);
              this.path = URL.createObjectURL(new BlobBuilder().getBlob("application/pdf"))
            }
          } else {
            console.log("浏览器版本较低,暂不支持该文件类型预览");
          }
        }).finally(() => {
          window.URL.revokeObjectURL(this.path);
        })
复制代码
responseType必须设置为blob
html 复制代码
  <iframe style="width: 100%;height: 500px" :src="path"></iframe>

文件预览效果

相关推荐
乌索普-5 分钟前
基于vue2的简易购物车
开发语言·前端·javascript
走粥6 分钟前
使用indexOf查找对象结合Pinia持久化引发的问题
开发语言·前端·javascript
北寻北爱16 分钟前
前端加密解密- base64、md5、sha256、AES
前端·vue.js
柒.梧.17 分钟前
Redis通用命令+五大核心数据结构
前端·bootstrap·html
Refly28 分钟前
【微信接入 OpenClaw 龙虾🦞】10分钟手把手教程完成接入,Claude 模型无限使用
前端·微信·github
恋猫de小郭34 分钟前
为什么中转渠道的顶级模型会不好用?这是一个技术问题
前端·人工智能·ai编程
发现一只大呆瓜39 分钟前
React-深度拆解 React路由:从实战进阶到底层原理
前端·react.js·面试
不甜情歌40 分钟前
搞懂 Promise:告别回调嵌套,再也不怕异步代码乱成麻
前端·javascript
野草arthas43 分钟前
什么是视觉层次?为什么需要它?
前端
发现一只大呆瓜1 小时前
React-手把手带你实现 Keep-Alive 效果
前端·react.js·面试