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

文件预览效果

相关推荐
juejin_cn8 小时前
使用 Codex SDK 轻松实现文字控制电脑
前端
CUYG8 小时前
Moment.js常用
前端
用户81274828151208 小时前
漏学Input知识系列之“偷”走了其他窗口的事件pilferPointers
前端
用户81274828151208 小时前
安卓14自由窗口圆角处理之绘制圆角轮廓线
前端
用户81274828151208 小时前
跨进程高级玩法方案2-学员分享
前端
用户81274828151208 小时前
安卓java端service如何在native进程进行访问-跨进程通讯高端知识
前端
Shirley~~8 小时前
Web Audio API
前端
TEC_INO8 小时前
STM32_11:DMA
java·前端·stm32
鹏北海8 小时前
qiankun微前端通信与路由方案总结
前端·微服务·架构
韩曙亮8 小时前
【Web APIs】浏览器本地存储 ② ( window.sessionStorage 本地存储常用 API 简介 | 代码示例 )
开发语言·前端·javascript·localstorage·sessionstorage·web apis·浏览器本地存储