Loading

前端二进制文件转blob链接

背景

有的时候后端返回文件,文件是属于stream类型(二进制格式),我们获取到二进制格式的文件后可能是需要下载,也直接在页面上预览等等。

代码


<template>
  <div class="app">
    <iframe
      :src="iframeSrc"
      scrolling="auto"
      style="border: 0; height: 100vh; width: 100vw"
    />
  </div>
</template>

<script>
import axios from 'axios'
export default {
  data() {
    return {
      iframeSrc: '',
    }
  },
  created() {
    // 该接口默认返回stream类型。
    // responseType: 指定响应结果为blob类型文件
    axios
      .get('http://127.0.0.1:3000/public/okdd1.pdf', {
        responseType: 'blob',
      })
      .then((res) => {
        const data = res.data
        // 将blob转blob地址
        const url = window.URL.createObjectURL(data)
        this.iframeSrc = url
      })
  },
}
</script>

<style lang="less" scoped></style>

效果

参考

https://blog.csdn.net/weixin_64317807/article/details/134446597

posted @ 2024-08-12 22:19  ^Mao^  阅读(72)  评论(0编辑  收藏  举报