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

文件预览效果

相关推荐
念你那丝微笑1 天前
uView Plus + Vue3 + TypeScript + UniApp 正确引入 UnoCSS(避坑版)
vue.js·typescript·uni-app
Van_captain1 天前
React Native for OpenHarmony Toast 轻提示组件:自动消失的操作反馈
javascript·开源·harmonyos
内存不泄露1 天前
基于Spring Boot和Vue的宠物医院管理系统设计与实现
vue.js·spring boot·信息可视化
Van_captain1 天前
React Native for OpenHarmony Modal 模态框组件:阻断式交互的设计与实现
javascript·开源·harmonyos
xkxnq1 天前
第一阶段:Vue 基础入门(第 14天)
前端·javascript·vue.js
前端小臻1 天前
列举react中类组件和函数组件常用到的方法
前端·javascript·react.js
筱歌儿1 天前
TinyMCE-----word表格本地图片转base64并上传
前端·word
研☆香1 天前
html css js文件开发规范
javascript·css·html
0思必得01 天前
[Web自动化] Selenium简单使用
前端·python·selenium·自动化·web自动化
2301_818732061 天前
下载nvm后,通过nvm无法下载node,有文件夹但是为空 全局cmd,查不到node和npm 已解决
前端·npm·node.js