學(xué)習(xí)?2020-4-29?
610閱讀8點贊0評論
實現(xiàn)文件的上傳需要三步往果,那么實現(xiàn)文件的下載呢舌胶?
也是三步喲
第一步:獲取文件的 fileId (或者別的什么的盖淡,總之應(yīng)該是代表這個文件的東西),各家后臺需要的都不一樣
第二步:調(diào)用接口
this.$http({
url:this.HOST + api.download,
method:'post',
params:{
fileId:fileId //此處上傳第一步獲取到的 fileid
},
responseType:'arraybuffer' //此處注意請求頭
}).then(function(res){
var this = that
var fileName = that.files.name //此處獲取文件名稱
that.download(res.data,fileName) //此處跳轉(zhuǎn)到第三步
})
第三步:處理返回值,并下載
download (data,fileName) {
if (!data) {
return
}
let url = window.URL.createObjectURL(new Blob([data])) //創(chuàng)建下載鏈接
let link = document.createElement('a') //創(chuàng)建a標(biāo)簽
link.style.display = 'none'??//將a標(biāo)簽隱藏
link.href = url??//給a標(biāo)簽添加下載鏈接
link.setAttribute('download', fileName) // 此處注意,要給a標(biāo)簽添加一個download屬性吓懈,屬性值就是文件名稱 否則下載出來的文件是沒有屬性的,空白白
document.body.appendChild(link)
link.click()??//執(zhí)行a標(biāo)簽
}
原地址?https://www.bilibili.com/read/cv5826555/