(已解决)wx.uploadFile上传遇坑,iOS好使安卓不好使?
发布于 6 年前 作者 jie16 11022 次浏览 来自 问答

在做小程序上传这块,一直遇坑一直添。目前遇见了一个神坑,感觉自己要死掉了,,,,,我写了一个图片上传,用的是ucloud的ufile表单上传,代码如下:
wx.uploadFile({
    url: ‘https://ufile.ishuidi.cn’,
    filePath: tempFilePath,//图片路径
    name: 'flie',
    method: 'POST',
    formData:{
      'Authorization': 'UCloud [email protected]:PsiykHRGid6/RX7UcpWucxZO7IU=',//加密的签名
      'FileName': '2013513070',//要存储的文件名
    },
    header: {
      'Content-Type': 'multipart/form-data',
      'Content-Length': sizeStr.toString(),//图片文件大小,可用微信api获取
     },
    success: function(res){
      console.log(res);
      console.log('========表单=========success');
    },
    fail:function(res){
      console.log(res);
      console.log('========表单=========fail');
    }  
  })

本来之前用苹果真机测的时候是好使得,但是最近发现安卓真机的时候,是不好使的。已醉,,,,错误信息是:RetCode:-148643,ErrMssg:invalid auth
很蒙蔽,不明白同一段js代码,为什么在iOS手机上可以,在安卓手机上就有问题?????排查了他们的签名,发现签名一致,加密签名并没有问题。更懵逼了,,,,
花了很长时间与ucloud沟通,通过对比数据发现: formData:{
      'Authorization': AuthorizationStr.toString(),//加密的签名
      'FileName': key.toString(),//要存储的文件名
    }里的数据被滤掉了,服务器根本没有接收到。所以是无效的授权,,,,,大家有没有经历过formData里的数据被滤掉的情况?是怎么解决的?我试着把里边的数据拼接到url中,'url?Authorization='+ Authorization+'& FileName='+FileName这样,但是并不能解决这个问题。

翻了很多帖子,有的说是ssl证书问题,然后在https://www.qcloud.com/product/ssl.html#userDefined10这里我进行了证书检测,发现并没有问题。

请问大家有没有好的办法?


有兴趣的可以测试一下   很希望有大神可以帮忙解决这个问题。

4 回复

我也遇到了同样的问题求解呀?

@忘记过去    调了一下已通  不过要下个版本

最后是怎么解决的啊,我这边也遇到了同样的问题

@素艺   之前加了组测试数据,然后帖子审核没通过,试了您给的微信版本,还是不好使。可否麻烦您帮忙测试一下,文章里加了可测试数据,您能否帮忙看看您服务器,是否form表单被过滤了,或者是我们存在什么问题,需要改正哪里?

回到顶部