zoukankan      html  css  js  c++  java
  • 导出---后台返回二进制流文件数据,前端转换格式进行下载

    isExcel(type,name, data) {
      const link = document.createElement('a')
      const blob = new Blob([data])
      link.style.display = 'none'
      link.href = URL.createObjectURL(blob)
      link.setAttribute('download', `${name}.`+type)
      document.body.appendChild(link)
      link.click()
      document.body.removeChild(link)
    },
    fuDown() {
          let parmas = {
            fileName: this.blogData.annexUrl.split("/")[
              this.blogData.annexUrl.split("/").length - 1
            ],
          };
    
          downloadFu(parmas)//集成的axios
            .then((res) => {
              console.log("下载");
              console.log(res);
              console.log("res");
              this.$tool.isExcel(this.type, this.typeName, res);
            })
            .catch((res) => {
              console.log(res.msg);
              console.log("res.msg");
            });

        //原生axios//
    // axios // .get("http://172.16.9.224:8090/blogs/blog/download", { // params: { // fileName: this.blogData.annexUrl.split("/")[ this.blogData.annexUrl.split("/").length - 1 ], //请求参数,文件名称 // }, // headers: { // 'X-Token': '1635c0cbc5f64e63b4d8f2bb171db48d#ACCOUNT#89177' // }, // responseType: 'blob', //二进制流 ,请求时需要配置响应类型 // }) // .then((res) => { // console.log("数据是:", res); // this.$tool.isExcel(this.type,this.typeName,res.data) type文件类型、typename 文件名称 data返回的二进制流数据

    // }) // .catch((e) => { // console.log("获取数据失败"); // }); },

     补充方法:

    export function buildExport(name, url, params = {}) {
      console.log("传入的参数-------------",params,(process.env.VUE_APP_API_URL?process.env.VUE_APP_API_URL:configs.baseURL.target) + url)
      axios({
        method: 'post',
        url: (process.env.VUE_APP_API_URL?process.env.VUE_APP_API_URL:configs.baseURL.target) + url,
        data:  {param:encryptList.Encrypt(JSON.stringify(params))},
        responseType: 'blob',
        headers: { 'token': tool.getToken(),appId:tool.getStorage("appId") }
      }).then(res => {
        const link = document.createElement('a')
        const blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
        link.style.display = 'none'
        link.href = URL.createObjectURL(blob)
        link.setAttribute('download', `${name}.xls`)
        document.body.appendChild(link)
        link.click()
        document.body.removeChild(link);
      }).catch(err => {
        console.log('导出报错', err);
      });
    }
  • 相关阅读:
    父类与子类之间的调用顺序
    ROW_NUMBER() OVER函数的基本用法用法
    String类
    代码块
    权限修饰符
    内部类
    final&static
    面向对象思想
    oracle存储过程常用技巧
    ORACLE EXECUTE IMMEDIATE 用法
  • 原文地址:https://www.cnblogs.com/zjz666/p/13828345.html
Copyright © 2011-2022 走看看