【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>

文件预览效果

相关推荐
用户51681661458411 分钟前
使用全能电子地图下载器MapTileDownloader 制作瓦片图层详细过程
前端·后端
拉不动的猪3 分钟前
从底层逻辑和实用性来分析ref中的值为什么不能直接引用
前端·javascript·面试
1024小神4 分钟前
tauri项目编译的时候,最后一步的时候内存溢出了?
前端
ONE_Gua8 分钟前
Wireshark常用过滤规则
前端·后端·数据挖掘
enki081519 分钟前
【CANN训练营】+开源之星+GitCode算子开发环境快速搭建手册
javascript·ecmascript·jquery
通往曙光的路上24 分钟前
vue啊哈哈哈哈哈哈哈哈
前端·javascript·vue.js
fouryears_2341727 分钟前
如何将Vue 项目转换为 Android App(使用Capacitor)
android·前端·vue.js
葡萄城技术团队31 分钟前
在线Excel新突破:SpreadJS如何完美驾驭中国式复杂报表
前端
muchan9233 分钟前
这会不会引起编程范式的变革?
前端·后端·编程语言
进阶的鱼38 分钟前
React+ts+vite脚手架搭建(四)【mock篇】
前端·javascript·react.js