需求:文件上传,只可上传一个文件,可多次上传
问题:使用element的upload组件上传文件,只上传了一次,再次上传时不掉接口
<el-upload
v-model:file-list="fileList"
:http-request="upload"
:limit="1"
:show-file-list="false"
>
<el-button type="primary">Click to upload</el-button>
</el-upload>
....
....
const upload = (params) => {
const { file } = params;
const formData = new FormData();
formData.append('file', file);
axios.post('/api/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
}).then((res) => {
console.log(res);
});
};
问题原因
- limit="1" 限制只能上传一个文件
- file-list 绑定了一个文件列表,上传成功后列表中有了一个文件
- Element Upload 组件认为已经达到上限,阻止了后续的上传操作
解决
上传成功之后手动清空fileList