vue-cli实现下载文件而不是打开文件
Posted 码上暴富
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue-cli实现下载文件而不是打开文件相关的知识,希望对你有一定的参考价值。
vue-cli实现下载文件而不是打开文件
vue-cli实现下载文件而不是打开文件
写一个vue指令,原理就是使用blob实现下载
Vue.directive('down', {
inserted: (el, binding) => {
el.style.cssText = 'cursor: pointer;color:write;'
el.addEventListener('click', () => {
console.log(binding.value)
let link = document.createElement('a')
let url = binding.value
// 这里是将url转成blob地址,
// image.setAttribute("crossOrigin", "anonymous") // 这句可以解决跨域问题
fetch(url).then(res => res.blob()).then(blob => { // 将链接地址字符内容转变成blob地址
link.href = URL.createObjectURL(blob)
console.log(link.href)
link.download = ''
document.body.appendChild(link)
link.click()
})
})
}
})
使用
<span v-down="item.path">下载</span>
结果
以上是关于vue-cli实现下载文件而不是打开文件的主要内容,如果未能解决你的问题,请参考以下文章
js window.open(url)为啥会自动下载文件,而不是打开文件?