导出Excel文件,responseType设置了blob,没下载成功时,后台实际返回了JSON格式的错误信息
downloadInfo(this.form).then(res=>{
if (res.type == 'application/json') {
const fileReader = new FileReader();
fileReader.onload = (ev) => {
try {
const jsonData = JSON.parse(ev.target.result);
this.$message.error(jsonData.data.errMsg)
} catch (err) {
console.log(err)
}
}
fileReader.readAsText(res);
} else {
downloadData(res, '下载文件名.xlsx')
}
}).catch(err=>{
this.$message.error('出错了,请稍后再试!')
})
export function downloadData(data, name) {
const url = window.URL.createObjectURL(new Blob([data]))
if (window.navigator.msSaveBlob) {
try {
window.navigator.msSaveBlob(new Blob([data]), name)
} catch (e) {
console.log(e);
}
} else {
const link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', name)
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
}
elementUI实现文件立即上传
<el-upload
ref="upload"
:show-file-list="false"
:http-request="upload"
:auto-upload= "true"
action=""
size="small"
multiple>
<el-button type="primary" size="mini" icon="el-icon-upload2">导入</el-button>
</el-upload>
upload(param) {
const formData = new FormData()
formData.append('file', param.file)
uploadInfo(formData).then(response => {
if (response.status === "1") {
this.$message.success('文件上传成功!')
} else {
this.$message.error(response.data.errMess)
}
}).catch(error => {
this.$message.error('出错了,请稍后再试!')
})
this.$refs.upload.clearFiles()
},