有关文件下载的处理js

import dateUtil from ‘~/plugins/dateUtil’

/**

  • 下载文件
  • url 请求地址
  • method: post get
  • method=post时,传递data参数,method=get时,传递params参数
  • setFileName为空时,默认设置文件名
    */
    function createElementToExportFile (url, method, params, data, setFileName, axios) {
    axios({
    url,
    responseType: ‘blob’, // 服务器返回的数据类型
    method,
    params,
    data
    }).then((res) => {
    const content = res.data
    const blob = new Blob([content]) // 构造一个blob对象来处理数据
    let fileName = ‘’ // 导出文件名
    if (setFileName) {
    fileName = setFileName
    } else {
    fileName = dateUtil.formatTimeInYmd(new Date()) + ‘.xls’
    }
    // 对于标签,只有 Firefox 和 Chrome(内核) 支持 download 属性
    // IE10以上支持blob但是依然不支持download
    if (‘download’ in document.createElement(‘a’)) { // 支持a标签download的浏览器
    const link = document.createElement(‘a’) // 创建a标签
    link.download = fileName // a标签添加属性
    link.style.display = ‘none’
    link.href = URL.createObjectURL(blob)
    document.body.appendChild(link)
    link.click() // 执行下载
    URL.revokeObjectURL(link.href) // 释放url
    document.body.removeChild(link) // 释放标签
    } else { // 其他浏览器
    navigator.msSaveBlob(blob, fileName)
    }
    }).catch((error) => {
    console.log(error)
    })
    }

export default {
createElementToExportFile
}

// 关于在文件中调用
import exportFile from ‘~/plugins/exportFile’
methods:{
testFuc(){
exportFile.createElementToExportFile(url, ‘post’, null, params, null, this.$axios)
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值