关于vue实现下载文档
import axios from '@/common/axios'
import { Notification } from 'element-ui'
const documentDownload= function (url) {
return axios.get(url, { responseType: 'blob' }).then(response => {
const fileName = response.headers['content-disposition'].split(';')[1].split('filename=')[1].replace(/"/g, '')
if (navigator.msSaveOrOpenBlob) {
// IE
navigator.msSaveBlob(new Blob([response.data]), fileName)
} else {
// 非IE
const link = document.createElement('a')
link.style.display = 'none'
link.href = URL.createObjectURL(new Blob([response.data]))
link.setAttribute('download', decodeURIComponent(fileName))
document.body.appendChild(link)
link.click()
URL.revokeObjectURL(link.href)
document.body.removeChild(link)
}
}).catch(error => {
const reader = new FileReader()
reader.readAsText(error.response.data)
reader.onload = () => {
const data = JSON.parse(reader.result)
const msg = data.detail ? `${data.message}<p>${data.detail}</p>` : data.message
Notification.error({
dangerouslyUseHTMLString: true,
message: msg,
duration: 0
})
}
})
}
export default documentDownload
调用
/*
*params address 地址
*/
documentDownload("address")