在做小程序上传这块,一直遇坑一直添。目前遇见了一个神坑,感觉自己要死掉了,,,,,我写了一个图片上传,用的是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这里我进行了证书检测,发现并没有问题。
请问大家有没有好的办法?
有兴趣的可以测试一下 很希望有大神可以帮忙解决这个问题。