el-upload手动上传
这篇文章主要讲述了如何使用el-upload组件手动上传文件,并解决上传重复文件的问题。
今天遇到一个问题,el-upload手动上传如果上传重复文件不让它上传,一直解决不了,接下来说一下这个问题
jsx<template>
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
multiple
:file-list="fileList"
:auto-upload="false"
:on-change="handleChange"
list-type="picture"
ref="upload"
>
<el-button size="small" type="primary" @click="clickOpen">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过2MB</div>
</el-upload>
</template>
<script>
export default {
data() {
return {
fileList: [],
};
},
methods: {
clickOpen() {},
handleChange(uploadFile, uploadFiles) {
// 更新 fileList 以反映当前上传文件的状态
this.fileList = uploadFiles;
// 检查文件大小
if (uploadFile.size / 1024 / 1024 > 2) {
this.$message.error("文件大小不能超过2MB");
this.removeFile(uploadFile);
}
// 使用 filter 方法检查重复文件
const duplicateFiles = this.fileList.filter(
(file) => file.name === uploadFile.name
);
if (duplicateFiles.length > 1) {
this.$message.error("不能上传重复的文件");
this.removeFile(uploadFile);
}
console.log("this.fileList: ", this.fileList);
console.log("uploadFile: ", uploadFile);
},
removeFile(file) {
const index = this.fileList.indexOf(file);
if (index !== -1) {
this.fileList.splice(index, 1);
}
},
},
};
</script>
jsx this.fileList = uploadFiles;
handleChange
方法首先更新 fileList
,以确保它反映了当前的上传文件状态。然后,它进行文件大小和重复性检查。如果文件需要被移除,removeFile
方法会从 fileList
中移除该文件,这将自动更新页面上显示的文件列表。
本文作者:LiuXueChao
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!