element的upload组件上传一次问题

59 阅读1分钟

需求:文件上传,只可上传一个文件,可多次上传

问题:使用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);
    });
  };
  

问题原因

  1. limit="1"  限制只能上传一个文件
  2. file-list 绑定了一个文件列表,上传成功后列表中有了一个文件
  3. Element Upload 组件认为已经达到上限,阻止了后续的上传操作

解决

上传成功之后手动清空fileList