1、el–upload上传excel后返回流文件并进行下载处理
elementUI中 el–upload不支持配置responseType: “blob”,所以需要使用el-upload中的http–request进行自定义上传接口请求。
<el-upload
:http-request="uploadExcel"
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url"
:disabled="upload.isUploading"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xls、xlsx格式文件。</span>
</div>
</el-upload>
uploadExcel(data) {
var _this = this;
let params = new FormData();
params.append("file", data.file);
axios
.post('接口', params, {
responseType: "blob",
headers: {
"Content-Type": "application/json",
Authorization: 'token',//token
},
})
.then((response) => {
//判断是否导入成果
if (response.data.type == "application/json") {
//导入成功
} else {
//导入失败返回流文件
_this
.$confirm("确定要导出失败的数据吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
const blob = new Blob([response.data]);
const a = document.createElement("a");
const url = window.URL.createObjectURL(blob);
const filename = Date.parse(new Date()) + ".xlsx";
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
})
.catch(() => {});
}
})
.catch((error) => {
console.log(error);
});
},
原文地址:https://blog.csdn.net/m0_46361270/article/details/129507837
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_40580.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。