收藏
回答

关于wx.uploadFile上传在鸿蒙2.0.0/JNY-AL10的手机上出现传图失败的问题?

问题:在JNY-AL10型号的华为手机下,微信版本8.0.20版本中调用小程序wx.uploadFile API时,会出现图片上传成功并成功返回上传后链接,但是该链接图片无法查看。业务表现不正常。

业务表现:用户选择图片,上传的图片无法显示,后台访问图片链接无法显示。

实现方式:用户选择图片使用wx.chooseMedia接口,取得图片tempFilePath并调用wx.uploadFile接口,该接口URL配置为后端上传接口(目前已排除后端接口问题),后端返回图片链接后,前端展示。

技术栈:UniAPP

尝试排除问题:

1、更换写法,将uni.chooseImage更换为wx.chooseMedia,将uni.uploadFile更换为wx.uploadFile,结果是一样的。

2、其他绝大部分手机:小米、iPhone、华为是无法复现问题,PC模拟器也无法复现问题。

3、排除接口超时、图片太大、OSS存储等问题。

4、测试将无法在本小程序上传的图片上传到其他小程序中,其他小程序也无法上传。

实例代码:

UniAPP实现:
async chooseImage() {
                const that = this
                uni.chooseImage({
                    success: (chooseImageRes) => {
                        const tempFilePaths = chooseImageRes.tempFilePaths;
                        uni.uploadFile({
                            url: 'http://#/api/front/user/img', //仅为示例,非真实的接口地址
                            filePath: tempFilePaths[0],
                            name: 'files',
                            header: {
                                'Authori-zation': "76dc6****df83e"
                            },
                            success: (uploadFileRes) => {
                                console.log(uploadFileRes.data);
                            }
                        });
                    }
                });
            },


小程序原生方式:     
 const that = this
      //照片选择器
      await wx.chooseMedia({
        // count: 20-that.checkeddata.length-that.noCheckdata.length-that.rejectList.length,
        sizeType: ['original', 'compressed'],
        sourceType: ['album', 'camera'],
        mediaType:['image'],
        success(res) {
          const tempFilePaths = res.tempFiles
          for (let i = 0; i < res.tempFiles.length; i++) {
            setTimeout(()=>{
              wx.uploadFile({
                url: 'http://#/api/front/user/img', //仅为示例,非真实的接口地址
                filePath: tempFilePaths[i].tempFilePath,
                name: 'files',
                header:{
                  'Authori-zation':that.$store.getters.token
                },
                success (res){
                  const data = res.data
                  console.log(res,'上传结果')
                  that.btnVisible=false
                  that.init()
                },
                fail(err) {
                  uni.showToast({
                    title:err,
                    icon:"none"
                  })
                }
              })
            },300)
          }
          uni.showToast({
            title:'上传成功',
            icon:"success"
          })
        }
      })


问题手机微信版本


问题手机系统版本


后台访问该图片


无法在该机型上传的图片(部分图片是可以正常上传的,但是传这几张问题必现)

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

1 个回答

  • 游客17846
    游客17846
    2023-03-15

    大佬,后来这个问题有解决吗



    2023-03-15
    有用
    回复
登录 后发表内容