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

文件预览效果

相关推荐
daols888 分钟前
vue表格 vxe-table 如何实现键盘导航时,按回车健向右移动,并到最后一行时按回车自动新增一行
vue.js·vxe-table
琹箐8 分钟前
Cursor 无法使用prettier格式化
前端
觉醒大王11 分钟前
如何整理文献阅读笔记? (精读与泛读)
前端·css·笔记·深度学习·自然语言处理·html·学习方法
广州华水科技26 分钟前
单北斗GNSS变形监测系统在水库安全监测中的应用与发展
前端
We་ct26 分钟前
LeetCode 58. 最后一个单词的长度:两种解法深度剖析
前端·算法·leetcode·typescript
夏河始溢30 分钟前
一八零、AG-UI:构建AI前端交互的统一协议
前端·人工智能·ui
m0_7408596241 分钟前
解决uniapp跳转页面警告:Extraneous non-props attributes ...
前端·javascript·uni-app
一行注释44 分钟前
ECharts柱状图横向展示与DataZoom滑动查看实现
开发语言·前端·javascript
踢球的打工仔1 小时前
typescript-类的访问权限public、private、protected
前端·javascript·typescript
Ulyanov1 小时前
Impress.js深度解析
开发语言·前端·javascript·css3·impress.js