downloadWithStream (list) {
/**
* @param {object[]} list
* @param {string} list[].name
* @param {string} list[].url
* 通过流下载
*/
list.forEach(async ({ url, name }) => {
const fileStream = await this.$axios.get(url, {
responseType: 'blob',
withCredentials: false
}).catch(() => {
return false
})
if (!fileStream) {
return false
}
const result = new Promise((resolve, reject) => {
// const file = new FileReader()
// file.readAsDataURL(fileStream.data)
// file.onload = function () {
const url = URL.createObjectURL(fileStream.data)
const aLink = document.createElement('a')
aLink.style.display = 'none'
aLink.href = url
aLink.setAttribute('download', name)
document.body.appendChild(aLink)
aLink.click()
document.body.removeChild(aLink)
URL.revokeObjectURL(url)
resolve(true)
// }
})
return result
})
},
async downloadWithFiles (list) {
/**
* @param {object[]} list
* @param {string} list[].name
* @param {string} list[].url
* 通过流下载 ,单个文件的下载
*/
const fileStream = await this.$axios.get(list.url, {
responseType: 'blob',
withCredentials: false
}).catch(() => {
return false
})
if (!fileStream) {
return false
}
const result = new Promise((resolve, reject) => {
// const file = new FileReader()
// console.log(typeof fileStream.data)
// console.log(fileStream.data)
// file.readAsDataURL(fileStream.data)
// file.onload = function () {
const url = URL.createObjectURL(fileStream.data)
const aLink = document.createElement('a')
aLink.style.display = 'none'
aLink.href = url
aLink.setAttribute('download', list.name)
aLink.click()
URL.revokeObjectURL(url)
resolve(true)
// }
})
return result
}
}