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) } }
  • 相关阅读:
    UVa 1151 Buy or Build【最小生成树】
    UVa 216 Getting in Line【枚举排列】
    UVa 729 The Hamming Distance Problem【枚举排列】
    HDU 5214 Movie【贪心】
    HDU 5223 GCD
    POJ 1144 Network【割顶】
    UVa 11025 The broken pedometer【枚举子集】
    HDU 2515 Yanghee 的算术【找规律】
    Java基本语法
    Java环境变量,jdk和jre的区别,面向对象语言编程
  • 原文地址:https://www.cnblogs.com/allenxieyusheng/p/14922101.html
Copyright © 2011-2022 走看看