下载文件,禁止当前窗口打开
我注释的代码,是之前的写法。像pdf文件图片,点击下载会直接打开,查找资料之后,
网上的说法是跨域的原因,我们项目的图片是放在oss上面的,和项目域名确实不一样,
所以这里重新new了一个XMLHttpRequest去处理的,然后就好了
// 文件下载
download(file) {
console.log('下载')
console.log(file)
// const isImage = ['png', 'jpeg', 'jpg', 'bmp', 'gif', 'webp', 'psd', 'svg', 'tiff']
// const arr = file.name.split('.')
// const suffix = arr[arr.length - 1]
// if (isImage.indexOf(suffix) > -1) {
// window.open(file.attachLink, '_blank') // 新开窗口下载
// } else {
// console.log(file.originalName)
// const a = document.createElement('a')
// a.style.display = 'none'
// a.download = file.originalName // 下载名称
// a.href = file.attachLink // 下载链接
// document.body.appendChild(a)
// a.click()
// // document.body.appendChild('a')
// }
const urls = file.attachLink || file.link
const x = new window.XMLHttpRequest()
x.open('GET', urls, true)
x.responseType = 'blob'
x.onload = () => {
const url = window.URL.createObjectURL(x.response)
const a = document.createElement('a')
a.href = url
a.download = file.name
a.click()
}
x.send()
},