思路
- 下载的
URL
最好通过fetch
转blob
再转换成URL
,这样URL
用来下载和预览都没问题啦。 - 下载的话只需要在
a
标签加个download
属性即可。 - 预览的话可以
target="_blank"
在新窗口打开。
vue自定义v-down
指令下载
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 baseDownloadUrl = localStorage.getItem('ApiAddess') + 'file/'
let url = baseDownloadUrl + binding.value
fetch(url).then(res => res.blob()).then(blob => {
link.href = URL.createObjectURL(blob)
console.log(link.href)
link.download = ''
document.body.appendChild(link)
link.click()
})
})
}
})