fetch(url, {
method: 'get',
mode: 'cors',
headers: {
'Content-type': 'application/octet-stream',
'token': store.state.token,
},
})
.then(res=>{
console.log(res);
if(res.status === 500) {
ElMessage.error('文件错误,下载失败')
return
}
const fileStream = streamSaver.createWriteStream(name,{
size:Number(res.headers.get('Content-Length'))
})
const readableStream = res.body
if(window.WritableStream && readableStream?.pipeTo){
return readableStream.pipeTo(fileStream)
.then(()=>console.log('done writing'))
}
window.writer = fileStream.getWriter()
const reader = res.body?.getReader()
const pump = () => reader?.read()
.then(res => res.done? window.writer.close() : window.WritableStream.write(res.value).then(pump))
pump()