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

文件预览效果

相关推荐
蚂蚁集团数据体验技术13 小时前
AI 文字信息图表的技术选型
前端·javascript·github
胡楚昊13 小时前
Polar WEB(21-
前端
BD_Marathon13 小时前
【JavaWeb】HTML专业词汇
前端
lichong95113 小时前
鸿蒙系统 4.1.0 兼容 Android apk 如何检测兼容的 Android 系统版本是多少
前端·javascript
colorFocus13 小时前
Vue之如何获取自定义事件返回值
前端·vue.js
草帽lufei13 小时前
业务代码迭代重构利器:SOLO中国版保障项目需求
前端·ai编程·trae
好_快13 小时前
Arco Design Layout 中使用 ResizeBox 实现可拖拽侧边栏
前端·vue.js·arco design
国服第二切图仔13 小时前
Electron for 鸿蒙PC项目实战—折线图组件
javascript·electron·鸿蒙pc
重铸码农荣光13 小时前
JavaScript 面向对象编程:从字面量到原型继承的深度探索
前端·javascript·设计模式
打工仔张某13 小时前
Node-Req-Cache
javascript