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

文件预览效果

相关推荐
attitude.x20 小时前
PyTorch 动态图的灵活性与实用技巧
前端·人工智能·深度学习
β添砖java20 小时前
CSS3核心技术
前端·css·css3
空山新雨(大队长)20 小时前
HTML第八课:HTML4和HTML5的区别
前端·html·html5
猫头虎-前端技术21 小时前
浏览器兼容性问题全解:CSS 前缀、Grid/Flex 布局兼容方案与跨浏览器调试技巧
前端·css·node.js·bootstrap·ecmascript·css3·媒体
阿珊和她的猫21 小时前
探索 CSS 过渡:打造流畅网页交互体验
前端·css
元亓亓亓21 小时前
JavaWeb--day1--HTML&CSS
前端·css·html
β添砖java21 小时前
CSS的文本样式
前端·css
前端小趴菜0521 小时前
css - 滤镜
前端·css
祈祷苍天赐我java之术21 小时前
理解 CSS 浮动技术
前端·css