react实现下载文件

   downloadFile=(filePath, filename)=>{
        axios.post(filePath, '', {
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded', //请求的数据类型为form data格式
            },
            'responseType': 'blob'  //设置响应的数据类型为一个包含二进制数据的 Blob 对象,必须设置!!!
        }).then(function (response) {
            const blob = new Blob([response.data]);
            const fileName = filename;
            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(function (error) {
            console.log(error);
        });
    }

 

posted @ 2021-08-12 14:43  WrYcF  阅读(3550)  评论(0编辑  收藏  举报
Live2D