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

文件预览效果

相关推荐
90后的晨仔几秒前
表单输入绑定详解:Vue 中的 v-model 实践指南
前端·vue.js
陈佬昔没带相机27 分钟前
围观前后端对接的 TypeScript 最佳实践,我们缺什么?
前端·后端·api
90后的晨仔36 分钟前
Vue 事件处理深入指南:从基础到进阶
前端·vue.js
qq_427506081 小时前
JavaScript和小程序写水印的方法示例
前端·算法·微信小程序
落雪小轩韩2 小时前
Vue常见题目
javascript·vue.js
拾光拾趣录2 小时前
前端面试真题深度解析:从原型到安全,七道题看透核心能力
前端·面试
烛阴2 小时前
告别重复劳动:Gulp.js 新手入门教程
前端·javascript
JSON_L3 小时前
Vue 正在热映模块
前端·javascript·vue.js
踏上青云路3 小时前
C# 闭包
java·前端·c#