收藏
回答

多图上传,如何删除并终止某一个图片的上传?

已完成带进度的多图上传,但是没弄明白如何删除某一张图片然后终止这张图片的上传。

比如现在上传的图片数组有三张图片,分别有对应的上传进度监控,当删除第一张图片,会导致第一张和第二张都终止上传,然而只删除最后一张就没事。

排查结果发现是,删除图片数组里某个元素,index变了,但上传还是对应的之前的index,请问各位大大是怎么解决的?

关键代码如下

data: {
  fileList: [],
  uploadTask: {}
}

uploadFile: function() {
  var fileList = this.data.fileList
  fileList.map((file,index)=>{
    this.data.uploadTask[index] = wx.cloud.uploadFile({
     // ...
     // setData
    })
    that.data.uploadTasks[index].onProgressUpdate((res)=>{
      // ...
      // setData
    })
  })
}

deleteFile: function(e) {
  const { index, name } = e.detail
    var fileList = this.data.fileList
    if(fileList[index].status == 'uploading'){
      that.data.uploadTasks[index].abort()
      // 如果没有下面这句,不会从fileList里删除,但会正常终止上传这一张图片
      fileList.splice(index, 1);
      // 如果加上上面这句,从fileList里删除,但同时会导致当前和下一个图片都会终止上传
    }
}

找不到办法捉急啊。。

回答关注问题邀请回答
收藏

1 个回答

  • z.song
    z.song
    2020-04-23

    没人知道嘛?

    2020-04-23
    有用
    回复 1
    • 天下
      天下
      05-26
      最后咋解决的呢?
      05-26
      回复
登录 后发表内容
问题标签