一般的文件下載就是使用鏈接 直接用a標簽將地址寫入
<a :href="文件地址" download="文件下載名稱">下載</a>
由于各種原因 現(xiàn)在是將二進制文件流返回,以前的下載方式不支持,更新一種新的下載方式,添加了responseType: 'blob'
,告訴服務器需要的格式。
axios({
method: 'post',
url: url,
data: {},
responseType: 'blob'
}).then(res => {
let data = res.data
let url = window.URL.createObjectURL(new Blob([data]))
let link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', 'test.rar')
document.body.appendChild(link)
link.click()
}).catch((error) => {})
那么blob是什么呢?
Blob 對象表示一個不可變、原始數(shù)據(jù)的類文件對象。Blob 表示的不一定是JavaScript原生格式的數(shù)據(jù) 詳細內(nèi)容
我們的最終目的就是將文件下載下來,使用blob對象創(chuàng)建一個URL,將地址寫到a標簽中下載。
image.png