按钮:
<Button onClick={handleDownLoad}>下载</Button>
点击事件
const encPreview = (key) => {
axios({
method: 'get',
url: 'download.json',
params: {//入参参数
userId: userInfo.userId,
ossFileKey: key,
tntInstId: 'MYBKC1CN',
// ...postData
},
// headers: { 'Content-Type': 'application/json;charset=UTF-8' },
responseType: 'blob',
}).then((res) => {
const blob = new Blob([res.data], {
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
}); // for .xlsx files
// 通过URL.createObjectURL生成文件路径
const url = window.URL.createObjectURL(blob);
// 创建a标签
const ele = document.createElement('a');
ele.style.display = 'none';
// 设置href属性为文件路径,download属性可以设置文件名称
ele.href = url;
// ele.download = postData.name || '基础分析';
const fileName = decodeURI(res.headers['content-disposition'].split(';')[1].split('filename=')[1]);
ele.setAttribute('download', fileName);
// 将a标签添加到页面并模拟点击
document.querySelectorAll('body')[0].appendChild(ele);
ele.click();
// 移除a标签
ele.remove();
});
};