vue中怎么判断el-upload里面是否上传了文件
时间: 2024-01-25 18:03:57 浏览: 132
vue+axios+el-upload实现文件上传(带参数):
3星 · 编辑精心推荐
在`el-upload`中,可以利用`before-upload`和`file-list`两个属性来判断是否上传了文件。
1. `before-upload`属性:它是一个函数,会在上传文件之前被调用,你可以在这个函数中进行一些判断逻辑,如果返回 false,那么上传流程将停止。在这个函数中,可以通过 `file` 参数获取当前要上传的文件的相关信息,例如文件名、文件大小等。因此,我们可以在这个函数中判断是否有文件要上传,例如:
```
<el-upload
action="/upload"
:before-upload="handleBeforeUpload"
:file-list="fileList"
>
<el-button>上传文件</el-button>
</el-upload>
<script>
export default {
data() {
return {
fileList: []
}
},
methods: {
handleBeforeUpload(file) {
if (file) {
// 有文件要上传
return true
} else {
// 没有文件要上传
this.$message.warning('请选择文件')
return false
}
}
}
}
</script>
```
2. `file-list`属性:它是一个数组,用来存储已经上传的文件信息。我们可以在该数组中判断是否有文件已经上传,例如:
```
<el-upload
action="/upload"
:file-list="fileList"
>
<el-button>上传文件</el-button>
</el-upload>
<script>
export default {
data() {
return {
fileList: []
}
},
methods: {
handleUploadSuccess(response, file, fileList) {
this.fileList = fileList
},
handleUploadError(error, file, fileList) {
this.fileList = fileList
}
}
}
</script>
```
在上面的代码中,我们定义了`handleUploadSuccess`和`handleUploadError`两个事件处理函数,用来处理上传成功和上传失败的情况。在这两个函数中,我们都会更新`fileList`数组,所以我们可以在`fileList`数组的长度上判断是否有文件已经上传,例如:
```
if (this.fileList.length > 0) {
// 有文件已经上传
} else {
// 没有文件已经上传
}
```
阅读全文