收藏
回答

调用wx.chooseImage和wx.uploadFile上传手机本地照片后,会删除本地的照片

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.chooseImage和wx.uploadFile 微信安卓客户端 7.0.7 2.9.1

[步骤]

选择手机中的本地图片,并上传

步骤

选择手机中的本地图片,并上传

[结果]
选择上传的本地图片消失
[期望]
图片上传至服务器,本地图片保留


复现情况:

不是必现,无法确定触发条件,频率几十次会出现一次,是比较严重的问题

代码片段

chooseImage: function(e) {

var _self = this

if (!_self.imageList) {

_self.imageList = []

}

wx.chooseImage({

count: _self.limit ? (_self.limit - _self.imageList.length) : 9,

sizeType: ['compressed'], // original 原图,compressed 压缩图,默认二者都有

sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有

success: function(e) {

_self.uploadimg(e)

},

})

},


uploadimg: function(data) {

let completeImages = 0

let _self = this,

keyname = _self.fileKeyName ? _self.fileKeyName : 'upload-images',

// imgs = _this.data.imgs,

// files = _this.data.files,

// count = _this.data.count,

storage = _self.storage,

i = data.i ? data.i : 0,

success = data.success ? data.success : 0,

fail = data.fail ? data.fail : 0

wx.uploadFile({

url: config.StorageUpload,

filePath: data.tempFilePaths[i],

formData: _self.formData,

name: keyname,

success: function(res) {

let _res = JSON.parse(res.data) //微信小程序返回必须要parse为json

if (_res.errno === 0) {

completeImages++

uni.showToast({

title: '上传进度:' + completeImages + '/' + data.tempFilePaths.length,

icon: 'none',

mask: false,

duration: 500

});

_self.storage.push(_res.data)

_self.imageList.push(data.tempFilePaths[i])

success++

}

},

fail: function(res) {

fail++

},

complete: function(res) {

i++

if (i == data.tempFilePaths.length) { //当图片传完时,停止调用  

_self.$emit('add', {

// currentImages: imagePathArr,

storage: _self.storage,

allImages: _self.imageList

})

_self.$emit('input', _self.imageList)

} else {

data.i = i

data.success = success

data.fail = fail

_self.uploadimg(data)

}

}

})

},


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

2 个回答

  • 疯狂的小辣椒
    疯狂的小辣椒
    2019-10-29

    你好,猜测和手机内存不足有关。

    可以在 complete 里面加日志,试一试选择比较大的图片,再试一试选择比较小的图片来验证一下。


    2019-10-29
    有用
    回复 1
    • 2019-10-29
      内存和存储空间的原因应该排除,k20pro硬件也算是安卓中旗舰了。刚才有复现了一次,两张图片一起,一张成功上传,一张本地图片迷之消失
      2019-10-29
      回复
  • 2019-10-29

    补充,手机为红米k20pro

    2019-10-29
    有用
    回复 2
    • 烦了烦
      烦了烦
      2019-10-29
      你的拍照会闪退么?
      2019-10-29
      回复
    • 2019-10-29回复烦了烦
      不会闪退,刚搜了下社区,发现有相同问题的朋友。
      2019-10-29
      回复
登录 后发表内容
问题标签