1.window.open
window.open(`/api/pc_marketImportAndExport/export?Blade-Auth=${token}`,'_self')
const uri = axios.getUri({
url: '/api/pc_marketImportAndExport/template',
params: {
Blade-Auth : token,
},
})
window.open(uri, '_self')
2. Blob对象
// fileArrayBuffer 文件流 filename 文件名称
const downloadXls = (fileArrayBuffer, filename) => {
let data = new Blob([fileArrayBuffer], { type: 'application/vnd.ms-excel,charset=utf-8' });
if (typeof window.chrome !== 'undefined') {
// Chrome
var link = document.createElement('a');
link.href = window.URL.createObjectURL(data);
link.download = filename;
link.click();
} else if (typeof window.navigator.msSaveBlob !== 'undefined') {
// IE
var blob = new Blob([data], { type: 'application/force-download' });
window.navigator.msSaveBlob(blob, filename);
} else {
// Firefox
var file = new File([data], filename, { type: 'application/force-download' });
window.open(URL.createObjectURL(file));
}
}
// 使用:
const handleTemplate = () => {
downLoadTemplate({
templateName: 'card',
}).then(res => {
// res.data 后端返回的文件流
downloadXls(res.data, '测试.xlsx');
});
}
// 接口配置
// export const downLoadTemplate = query => {
// return request({
// url: '/api/importAndExport/template',
// method: 'get',
// params: query,
// responseType: 'blob',
// });
// };