el-upload上传组件,上传失败缩略图依旧存在问题

问题:

我的图片上传限制了大小,上传时超过5M会报错提示不能超过该大小,但是缩略图依旧生成了

解决:

调用上传函数时,失败则返回Promise.reject()。具体代码如下:

<el-upload
  action="#"
  accept="image/jpeg,image/png"
  :file-list="appealFileList"
  multiple
  :http-request="handleUpload"
  list-type="picture-card"
  :on-change="handleChange"
  :on-preview="handlePictureCardPreview"
  :on-remove="handleRemove">
  <el-icon><Plus /></el-icon>
</el-upload>
<el-dialog :title="'预览申诉照片'" v-model="dialogVisible" >
  <el-image :src="dialogImageUrl" preview-teleported></el-image>
</el-dialog>


const handleUpload = (option) => {
  const isType = option.file.type === 'image/jpeg' || 'image/png'
  const isLt20M = option.file.size / 1024 / 1024 < 20
  let flag=true;
  if (!isType) {
    ElMessage.error('上传图片只能是 JPG、PNG 格式!');
    flag=false;
  }
  if (!isLt20M) {
    ElMessage.error('上传图片大小不能超过 20MB!');
    flag=false;
  }
  if(!flag){
   //关键在这里,要reject         
    return Promise.reject()
  }else{
    appealFileList.push(option.file);
  }
};

扩展:

我这个功能是多图片上传,前端上传到OSS,另外还有一个保存按钮,最开始是用户上传一次就立马上传到OSS,但是生产中经常发生丢图片的事件,最后反应过来是异步的问题,一次上传多张图片,图片还在上传OSS,用户点击保存,导致最后的上传的照片集合中只有部分图片。
解决方案:在用户点击保存的时候对所有图片进行上传,等待所有图片上传完毕后再请求后端接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值