收藏
回答

wx.chooseImage原图选择特殊文件后缀图片,上传异常报错?

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

存在的bug:

在华为系列手机中,安装“扫描全能王”软件,通过扫描软件拍得的扫描图片,选择保存到手机相册中,同一张图片多次选择保存到相册,在相册中就会保存得到多张相同图片,图片的文件名在文件后缀中添加(1)、(2)、(3)等标识进行区分,这种图片使用 wx.chooseImage 接口选择“原图”获得的临时文件路径后缀同样存在(1)、(2)、(3),并且在后续的上传接口调用中都会报错 “fail:file doesn't exist”,但是这种图片在手机中正常展示,可以通过微信或其它软件正常上传,wx.chooseImage 的非原图选择得到的文件路径后缀也正常,上传等操作都没问题,此bug可以在小程序官方组件展示中稳定复现。

复现过程:

手机型号:荣耀 V30 Pro,手机系统: HarmonyOS 2.0.0,微信版本:8.0.19,基础库:2.22.0

微信号:mxk1021120,在小程序官方组件展示中的复现开始时间:2022-02-22 19:00:00 ,当天日志已经上传

视频录制:


调用的接口:

// 默认原图从相册选择最多9张图片
wx.chooseImage({
  sizeType: ['original'], // 设置选择原图、压缩图 ['original', 'compressed']
  sourceType: ['album'], // 从相册选择还是相机拍照
  count: 9, // 最多可以选择的图片张数
  success: res => {
    recordLog('wx_chooseImage_res', res, 'info');
    ...
  },
  fail: error => {
    recordLog('wx_chooseImage_fail', error, 'error');
    ...
  }
});

success回调事件返回值:

{
  "errMsg": "chooseImage:ok",
  "tempFilePaths": [
        "wxfile://tmp_e08597164ef3be1379a84f1cbb8e1fe9611e47226c09ea87d54c06d4450c82c7.jpg (1)", 
        "wxfile://tmp_366dea027c3c525bd833e72ea677901015e58e5aa1a01c18846326beb09daf5d.jpg (2)"
  ],
  "tempFiles": [{
  	"path": "wxfile://tmp_e08597164ef3be1379a84f1cbb8e1fe9611e47226c09ea87d54c06d4450c82c7.jpg (1)",
  	"size": 60081
  }, {
  	"path": "wxfile://tmp_366dea027c3c525bd833e72ea677901015e58e5aa1a01c18846326beb09daf5d.jpg (2)",
  	"size": 60081
  }]
}



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

2 个回答

  • brave
    brave
    2022-02-24


    测试未复现。从录屏来看,请自查是否是该APP生成的图片就是此类后缀,不使用该app生成的图片是否正常

    2022-02-24
    有用 2
    回复 3
    • M ʕ•ᴥ•ʔ
      M ʕ•ᴥ•ʔ
      2022-02-24
      华为手机,全能扫描王APP保存的图片就会如此
      2022-02-24
      回复
    • brave
      brave
      2022-02-24回复M ʕ•ᴥ•ʔ
      那这个就应该是全能扫描王APP的问题
      2022-02-24
      回复
    • M ʕ•ᴥ•ʔ
      M ʕ•ᴥ•ʔ
      2022-02-24回复brave
      小程序既然能选择,就不应该后面报错,这也算小程序的bug问题,得解决,不然就不应该可以选择
      2022-02-24
      回复
  • 再见,电脑崽
    再见,电脑崽
    2022-02-24

    自己写逻辑,在上传之前把文件扩展名改成正常的图片后缀 jpg | png | gif。

    FileSystemManager.rename(Object object)


    2022-02-24
    有用
    回复
登录 后发表内容