传递给后端
时间: 2023-07-04 11:24:15 浏览: 74
好的,下面是使用Element Plus实现上传excel功能的代码示例:
```vue
<template>
<div>
<el-upload
class="upload-demo"
:action="uploadUrl"
:headers="headers"
:on-success="uploadSuccess"
:before-upload="beforeUpload"
:on-exceed="handleExceed"
:file-list="fileList"
:auto-upload="false"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">
只能上传Excel文件,且不超过 2MB
</div>
</el-upload>
</div>
</template>
<script>
import { ElUpload, ElButton, ElMessage } from 'element-plus';
export default {
components: {
ElUpload,
ElButton,
},
data() {
return {
uploadUrl: '/api/upload',
headers: {
Authorization: 'Bearer ' + localStorage.getItem('token'),
},
fileList: [],
limit: 2, // 限制文件大小为2MB
allowedTypes: ['application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'], // 允许上传的文件类型
};
},
methods: {
beforeUpload(file) {
// 检查文件类型和大小
const isExcel = this.allowedTypes.indexOf(file.type) !== -1;
if (!isExcel) {
ElMessage.error('只能上传Excel文件');
return false;
}
const isLt2M = file.size / 1024 / 1024 < this.limit;
if (!isLt2M) {
ElMessage.error('上传文件大小不能超过2MB');
return false;
}
return true;
},
handleExceed(files, fileList) {
ElMessage.warning(`只能上传一个Excel文件`);
},
uploadSuccess(response, file, fileList) {
// 上传成功后的处理逻辑,可以将response传递给后端进行处理
ElMessage.success('上传成功');
},
},
};
</script>
```
这个示例中使用了`ElUpload`组件实现上传文件的功能,需要通过`action`属性设置上传文件的接口地址。在`before-upload`方法中,可以先检查文件的类型和大小是否符合要求,如果不符合则返回`false`,阻止文件上传。在`uploadSuccess`方法中,可以对上传成功后的文件进行处理,如将数据传递给后端进行处理。
需要注意的是,在上传文件时需要设置请求头,以便后端进行权限验证。在示例中,使用了`headers`属性来设置请求头,其中包含了`Authorization`字段,值为`Bearer`加上当前用户的token。
阅读全文