template如下
<input
type="file"
ref="import"
style="display: none"
@change="uploadIn($event)"
/>
<el-button type="warning" size="small" @click="handleIn"
>导入</el-button
>
script 如下 实现自定义上传,其中可以加入判断文件大小等各种操作,主要我这里是通过formdata上传,也可以通过其他方式写入文档流,根据自己需求而定
// 打开导入
handleIn() {
this.$refs.import.click();
},
//导入
uploadIn(event) {
let file = event.target.files; //获得文件
for (let i = 0; i < file.length; i++) {
// 上传类型判断
let fileName = file[i].name;
let idx = fileName.lastIndexOf(".");
if (idx != -1) {
let ext = fileName.substr(idx + 1).toUpperCase();
ext = ext.toLowerCase();
console.log(ext == "xlsx");
if (ext !== "xls" && ext !== "xlsx") {
this.msgWarning("上传文件只能是excel文件");
return;
} else {
this.importFile = file[i];
}
}
}
let formData = new FormData(); //数据
formData.append("file", this.importFile);
console.log(formData);
importIn(formData)
.then((res) => {
if (res.status === 1) {
this.msgSuccess("导入成功");
} else if (res.status === 0) {
this.msgError(res.msg);
}
})
.catch((e) => {});
},