axio請求里必須加 responseType: 'blob' 參數,如下
//下載文件
api.download=function(id) {
return request({
url: this.baseUrl+'/download/'+id,
method: 'get',
params: {},
responseType: 'blob'
})
}
返回結果里面要做如下處理
.then( res => {
let blob = new Blob([res], {type: res.type})
let downloadElement = document.createElement('a')
let href = window.URL.createObjectURL(blob); //創建下載的鏈接
downloadElement.href = href;
downloadElement.download = fileName; //下載后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); //點擊下載
document.body.removeChild(downloadElement); //下載完成移除元素
window.URL.revokeObjectURL(href); //釋放blob對象
})
