后端传递文件流字符串,前端接收方式,并模拟下载操作

  //下载操作

        download() {

            axios({

                url: '/download/sms',//请求路径

                method: 'post',//请求方式

                data: this.queryForm,//传递的数据

                responseType: 'blob',//接收数据格式 转为blob 

                headers: {

                    'Content-Type': 'application/json' //请求数据格式

                }

            })

                .then((res) => {

//blob 数据内容在res.data中

                    const blob = new Blob([res.data], {

                        type: 'application/vnd.ms-excel'

                    });

//文件名

                    const fileName = '短信列表.xls';

                    const linkNode = document.createElement('a');

 

                    linkNode.download = fileName; //a标签的download属性规定下载文件的名称

                    linkNode.style.display = 'none';

                    linkNode.href = URL.createObjectURL(blob); //生成一个Blob URL

                    document.body.appendChild(linkNode);

                    linkNode.click(); //模拟在按钮上的一次鼠标单击

 

                    URL.revokeObjectURL(linkNode.href); // 释放URL 对象

                    document.body.removeChild(linkNode);

                })

                .catch((err) => {

                    console.log(err);

                });

 

//需要注意的是,后端传递的直接是文件流,所以,如果前端写了过滤,需要处理此过滤,防止拦截

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值