由于项目文件服务器加密原因,只能通过后台接口获取二进制流,前端实现文件下载
/*
下载文件 (服务器文件)
url: 字符串,文件地址,
name: 文件名
*/
const downTement = (url, name) => {
if(!url){
Message.error('文件路径错误')
return
}
if(!name){
let index = url.lastIndexOf('/')
name = url.slice(index + 1,url.length)
}
let params = {
path:url
}
store.dispatch('setLoading', true)
//通过接口获取二进制流
downloadFile(params).then(res => {
if(res && res.code){
return
}
let blob = new Blob([res])
let href = URL.createObjectURL(blob)
let downloadElement = document.createElement('a')
downloadElement.href = href
downloadElement.download = name
document.body.appendChild(downloadElement)
downloadElement.click()
document.body.removeChild(downloadElement)
URL.revokeObjectURL(href)
store.dispatch('setLoading', false)
})
}