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);
      });
    }
  • 相关阅读:
    com.android.ide.common.process.PrecessException:org.gradle.process....finished with non-zero exit value 1
    android 学习笔记(1)
    C#遍历指定文件夹中的所有文件(转)
    让TextView里面的文字逐个显示的动画效果实现(1)
    This Handler class should be static or leaks might occur(null) 解决办法 (转)
    Android开发 旋转屏幕导致Activity重建解决方法(转)
    SQLite 数据库
    【Android】error opening trace file: No such file or directory (2)
    WPF中的RichTextBox
    android中的 Toast 和 AlertDialog
  • 原文地址:https://www.cnblogs.com/zjz666/p/13828345.html
Copyright © 2011-2022 走看看