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

文件预览效果

相关推荐
mwq3012317 小时前
《前端项目技术文档生成器》Prompt(可复用模板)
前端·llm·visual studio code
6***379417 小时前
React Native热更新方案
javascript·react native·react.js
x***J34817 小时前
React Native组件封装
javascript·react native·react.js
t***L26617 小时前
React Native真机调试连接不上的解决
javascript·react native·react.js
行云流水62617 小时前
uniapp h5图片长按隐藏默认菜单弹出
前端·javascript·uni-app
~无忧花开~17 小时前
JavaScript实现PDF本地预览技巧
开发语言·前端·javascript
一 乐18 小时前
宠物管理|宠物共享|基于Java+vue的宠物共享管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·springboot·宠物
小时前端18 小时前
“能说说事件循环吗?”—— 我从候选人回答中看到的浏览器与Node.js核心差异
前端·面试·浏览器
IT_陈寒18 小时前
Vite 5.0实战:10个你可能不知道的性能优化技巧与插件生态深度解析
前端·人工智能·后端
SAP庖丁解码18 小时前
【SAP Web Dispatcher负载均衡】
运维·前端·负载均衡