vue js 下载文件方法
//下载文件方法
function downLoadByUrl(url, contractName) {
return new Promise((resolve, reject) => {
// axios.defaults.headers['content-type'] = ''
let token = window.localStorage.getItem('accessToken');
axios({
method: 'get',
url: url, // 请求地址
responseType: 'blob', // 表明返回服务器返回的数据类型
headers: {
'Content-Type': 'application/json;charset=UTF-8',
token: token || ''
}
}).then(
response => {
resolve(response.data)
let blob = new Blob([response.data], {
type: 'application/vnd.ms-excel'
})
// console.log(blob)
let fileName = contractName + '_' + Date.parse(new Date()) + '.docx'
if (window.navigator.msSaveOrOpenBlob) {
// console.log(2)
navigator.msSaveBlob(blob, fileName)
} else {
// console.log(3)
var link = document.createElement('a')
link.href = window.URL.createObjectURL(blob)
link.download = fileName
link.click()
//释放内存
window.URL.revokeObjectURL(link.href)
}
},
err => {
reject(err)
}
)
})
}
handlePdf() {
let _self = this;
let query = _self.uuid;
let url =
_self.$RequestOb.baseUrl +
"marketside/peopertypact/print?uuid=" +
query;
_self.$RequestOb.downLoadByUrl(url, _self.contractName);
}