我在写项目的时候遇到一个问题华为OBS云上传回的下载链接,其中的一些特殊格式是在本地预览而不是下载,这好吗?这很不好所以纯js方法敬上!
//原本我下载的方法直接写进a标签
downloadFile(row) {
if (row.fileurl == '') {
this.$message('文件未上传!')
} else {
window.open(row.fileurl, '_blank')
}
},
//阅览文件
toBase64(str) {
var encodedData = encodeURIComponent(Base64.encode(str)) // 编码
this.testSrc = window.gcfg.filePreviewUrl + encodedData
window.open(this.testSrc, '_blank')
},
// 下载含有url的文件 利用a标签下载
downloadUrlFile(url, fileName) {
let filename = fileName
return fetch(url).then((res) =>
res.blob().then((blob) => {
let a = document.createElement('a')//创建一个a标签
let url = window.URL.createObjectURL(blob)//转译比特流放入内存
a.href = url
a.download = filename
a.click()//点击
window.URL.revokeObjectURL(url)//卸载缓存
})
)
},
当然好像也有一定的问题,好像和游览器支不支持格式有关具体不清楚,csdn上有一种要使用js文件下载的方法,但是都知道吧?要钱。so,先试试我这个吧~~~~
UI图: