blob数据格式下载excel文件
export default async function download(fileList,userId){
if(fileList.length===0){
console.log('无文件数据信息')
return
}
if(fileList.length===1){
if(fileList[0].fileSize>=2000){
await downloadBigFile(fileList[0],userId)
return
}
const req = {
Head:{},
Body:{
ceFileId:fileList[0].fileId,operatorId:fileList[0].uploadUser
}
}
service({
url:'',
method:'post',
responseType:'blob',
data:JSON.stringify(req)
}).then(data=>{
console.log('文件信息数据获取',)
if(!data){
console.log('文件下载失败')
return false
}
if(window.navigator&&window.navigator.msSaveOrOpenBlob){
const blob = new Blob([data])
window.navigator.msSaveOrOpenBlob(blob,fileList[0].fileName)
}else{
const blob = new Blob([data],{
type:'application/octet-stream'
})
const downloadElement = document.createElement('a')
const herf = window.URL.createObjectURL(blob)
downloadElement.style.display = 'none'
downloadElement.download = file.fileName
document.body.appendChild(downloadElement)
downloadElement.click()
document.body.removeChild(downloadElement)
window.URL.revokeObjectURL(herf)
}
}).catch(err=>{
console.log('文件下载失败')
})
}else{
for(let i =0;i<fileList.length;i++){
if(fileList[i].fileSize>=20480){
await downloadBigFile(fileList[i],userId)
continue
}
const req = {
Head:{},
Body:{
ceFileId:fileList[0].fileId,operatorId:fileList[0].uploadUser
}
}
service({
url:'',
method:'post',
responseType:'blob',
data:JSON.stringify(req)
}).then(data=>{
if(!data){
console.log('文件下载失败')
}
if(window.navigator&&window.navigator.msSaveOrOpenBlob){
const blob = new Blob([data])
window.navigator.msSaveOrOpenBlob(blob,fileList[0].fileName)
}else{
const blob = new Blob([data],{
type:'application/octet-stream'
})
const downloadElement = document.createElement('a')
const herf = window.URL.createObjectURL(blob)
downloadElement.style.display = 'none'
downloadElement.download = file.fileName
document.body.appendChild(downloadElement)
downloadElement.click()
document.body.removeChild(downloadElement)
window.URL.revokeObjectURL(herf)
}
}).catch(err=>{
console.log('文件下载失败')
})
}
}
}
function downloadBigFile(file,userId){
var formData = new FormData
formData.append('fileId',file.fileId)
formData.append('userId',userId)
service({
method:'post',
url:'',
header:{
'Access-Control-Allow-Origin':'*',
'Content-Type':'application/json'
},
responseType:'blob',
data:formData
}).then(data=>{
if(!data.data){
console.log('文件下载失败')
return false
}
if(window.navigator&&window.navigator.msSaveOrOpenBlob){
const blob = new Blob([data])
window.navigator.msSaveOrOpenBlob(blob,file.fileName)
}else{
const blob = new Blob([data],{
type:'application/octet-stream'
})
const downloadElement = document.createElement('a')
const herf = window.URL.createObjectURL(blob)
downloadElement.style.display = 'none'
downloadElement.download = file.fileName
document.body.appendChild(downloadElement)
downloadElement.click()
document.body.removeChild(downloadElement)
window.URL.revokeObjectURL(herf)
}
}).catch(err=>{
console.log('文件下载失败')
})
}