需求如下:
实现代码
html
<el-upload
accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
action=""
:before-upload="beforeUpload">
<el-button size="small" type="primary">导入</el-button>
</el-upload>
js
import axios from 'axios';
data () {
return {
files: {},
}
}
methods: {
beforeUpload(file){
this.files = file;
this.submitUpload();
return false; // 取消默认上传
},
submitUpload() {
if(this.files.name == ""){
this.$message.warning('请选择要上传的文件!')
return false
}
let fileFormData = new FormData();
let data = this.files
fileFormData.append('file', data, this.files.name); // 注意'file'要和后端统一
let headers = {
'Content-Type': 'multipart/form-data' // 设置请求头
}
axios.post('/api/import', fileFormData, headers).then(res=>{
this.$message.success('导入成功')
this.getList() // 刷新列表
}).catch((e) => {
this.$message.error("上传失败,请重新上传");
})
}
}