zoukankan      html  css  js  c++  java
  • 后端下载Xlsx文件 二进制流

    1. 首先返回头需要设置: options.responseType = 'blob'

    其他方式和post格式相同

    例子:

      postDownload (url, data, params, headers,) {
        let options = {}
    
        if (params) {
          options.params = params
        }
        if (headers) {
          options.headers = headers
        }
        options.responseType = 'blob'
        return axios.post(url, data, options)
      },
    

     2. 通过接口请求后 

     文件名称一般从返回header去取的

    然后创建临时的url 模拟点击效果进行下载操作

         //将二进制流转为blob
        const blob = new Blob([response.data], { type: 'application/octet-stream' })
        
    if (typeof window.navigator.msSaveBlob !== 'undefined') { // 兼容IE,window.navigator.msSaveBlob:以本地方式保存文件 window.navigator.msSaveBlob(blob, decodeURI(filename)) } else { // 创建新的URL并指向File对象或者Blob对象的地址 const blobURL = window.URL.createObjectURL(blob) // 创建a标签,用于跳转至下载链接 const tempLink = document.createElement('a') tempLink.style.display = 'none' tempLink.href = blobURL tempLink.setAttribute('download', decodeURI(filename)) // 兼容:某些浏览器不支持HTML5的download属性 if (typeof tempLink.download === 'undefined') { tempLink.setAttribute('target', '_blank') } // 挂载a标签 document.body.appendChild(tempLink) tempLink.click() document.body.removeChild(tempLink) // 释放blob URL地址 window.URL.revokeObjectURL(blobURL) } }
  • 相关阅读:
    spring aop
    Linux进程管理命令
    逻辑卷管理-LVM(Logical Volume Manager)
    Linux磁盘与文件系统管理(二)
    Linux磁盘与文件系统管理(一)
    Linux后台运行和关闭、查看后台任务
    Linux用户管理及用户信息查询
    文件备份与压缩
    Liunx信息显示与文件搜索
    文本处理三剑客之 awk
  • 原文地址:https://www.cnblogs.com/allenxieyusheng/p/14922101.html
Copyright © 2011-2022 走看看