uni-app ufilepicker手动上传多张图片后删除其中一张临时图片再执行this.$refs.files.upload()剩余图片无法上传

uni-app ufilepicker手动上传多张图片后删除其中一张临时图片再执行this.$refs.files.upload()剩余图片无法上传

示例代码:

发现问题是,delFiles执行后,this.files中的所有文件的status等字段消失了,而上传前判断status == ready的文件才能上传导致剩余几张不上传了。

操作步骤:

如描述

预期结果:

删除其中一张,剩余几张图片仍然能够上传

实际结果:

剩余图片不上传了

bug描述:

ufilepicker采用手动上传,上传多张后删除其中一张临时图片,然后执行this.$refs.files.upload()结果剩余几张无法上传

信息类型 信息
产品分类 uniCloud/App

更多关于uni-app ufilepicker手动上传多张图片后删除其中一张临时图片再执行this.$refs.files.upload()剩余图片无法上传的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

你好,这个问题解决了吗?我也遇到这个问题,删除一张照片后,手动上传就失效

更多关于uni-app ufilepicker手动上传多张图片后删除其中一张临时图片再执行this.$refs.files.upload()剩余图片无法上传的实战教程也可以访问 https://www.itying.com/category-93-b0.html


问题出在删除文件后,文件对象的 status 字段丢失,导致上传逻辑无法识别为就绪状态。ufilepicker 组件在删除文件时,可能没有正确维护剩余文件的状态。

解决方案:

delFiles 方法中删除文件后,需要手动重置剩余文件的 status'ready',以确保它们能被正确识别并上传。

修改后的 delFiles 方法示例:

delFiles(index) {
  // 删除指定索引的文件
  this.files.splice(index, 1);
  
  // 重置剩余文件的状态为 ready
  this.files.forEach(file => {
    if (!file.status || file.status !== 'success') {
      file.status = 'ready';
    }
  });
}
回到顶部