此时,需要将前端请求文件的ajax请求中加入 responseType: ‘blob’,这样就可以将请求回来的转化为bolb格式。
<div class="exportText">
<span class="readme">导入前请先下载导入模板,</span><span class="readmeTwo"
v-hasPermi="['farmers:farmersInfo:export']" @click="handleExport">点击下载导入模板</span>
</div>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 下载模板 (在 .js文件里)
export function downloadTemplate(params) {
return request({
url: '/common/cos/download',
method: 'get',
responseType: 'blob',
params
})
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function handleExport() {
let params = {
delete: false,
fileName: '/template/客户导入模板.xlsx'
}
downloadTemplate(params).then(res => {
console.log(res, 'res');
let result = res; //如果后端返回的result是进过Blob处理的,直接 window.URL.createObjectURL(result),如果没有,就需要先实例化new Blod处理之后再window.URL.createObjectURL(blob)。
let blob = new Blob([result], { type: "application/vnd.ms-excel" });
let url = window.URL.createObjectURL(blob);
let link = document.createElement('a');
link.download = "客户导入模板.xlsx";
link.href = url;
link.click();
}).catch(err => {
console.log(err)
// resolveBlob(res, '客户导入模板.xlsx'); //方法在下面
})
}