原始fetch 请求 下载视频
const url = 'http:localhost'
const headers = new Headers()
headers.appen('token', '****')
fetch(url).then(response => {
response.arrayBuffer().then(res => {
const type = 'video/*'
const blob = new Blob([res], { type: type })
downloadFileByBlob(blob, filename)
})
})
function downloadFileByBlob (blob, filename) {
const videoURL = URL.createObjectURL(blob)
const aLink = document.createElement('a')
document.body.appendChild(aLink)
aLink.download = filename
aLink.href = objectUrl
aLink.click()
document.body.removeChild(aLink)
window.URL.revokeObjectURL(videoURL )
}
二进制excel 文件下载
const getCarRepoTemplate = () => {
return request({
url: '/api/v1/repository/template',
method: HTTP.GET,
responseType: ResponseTypeEnum.BLOB
})
}
const downLoadBlob = (BlobFile:any, fileName:string)=> {
const url = window.URL.createObjectURL(new Blob([BlobFile]))
const link = document.createElement('a')
link.href = url
link.setAttribute('download', fileName)
document.body.appendChild(link)
link.click()
window.URL.revokeObjectURL(url)
}
getCarRepoTemplate().then((response) => {
const reg = /.+filename=(.+)/
const fileName = response.headers['content-disposition'].match(reg)[1]
downLoadBlob(response.data, decodeURI(fileName))
})