前端下载文件方式之:创建a标签下载文件

日常工作中,通过a标签下载文件也是相当常见的场景。(后端返回二进制文件流)
每一行都有写注释,就不做过多描述,直接上代码

/**
         * @description:签到资料导出
         */
        handleExportExcel(){
            this.exportRequest(`${this.exportExeclUrl}?meetingKey=${this.richengMeetingKey}`,{
            }).then(res =>{
                console.log(res)
                // if(res.data.state === 200){
                    // 后端返回二进制文件流,创建Blog二进制对象
                    const blob = new Blob([res.data])
                    // 定义文件名
                    const filename = res.headers.filename
                    // IE和其他浏览器下载处理
                    if('download' in document.createElement('a')){
                        // 非IE浏览器下载
                        // 创建a标签
                        const link = document.createElement('a')
                        // 规定下载的超链接
                        link.download = filename
                        // 未点击前隐藏a链接
                        link.style.display = 'none'
                        // 创建URL对象,指向该文件url
                        link.href = URL.createObjectURL(blob)
                        // 将a标签添加到dom中
                        document.body.append(link)
                        // 触发a标签点击事件
                        link.click()
                        // 释放之前的URL对象
                        URL.revokeObjectURL(link.href)
                        // 从dom中移除该a链接
                        document.body.removeChild(link)
                    }else {
                        // IE10+ 下载
                        navigator.msSaveBlob(blob,filename)
                    }
            })
        },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值