微信小程序安卓机使用uploadfile提示undefined错误原因
前几天在开发小程序时遇到一个问题,发布帖子的时候上传本地图片到服务器上,在安卓机子上使用微信的uploadFile接口上传图片会失败,显示获取不到图片信息,在开发工具上是没有问题的,
然后我一步步测试了代码发现安卓手机是可以获取到本地图片信息的,只是获取到的图片数据格式有所不同
安卓手机上获取到的图片filePath是wxfile://xxx.jpg,
开发工具上获取到的图片filePath是http://tmp/wxbef352c853d73a7c.o6zAJs7u0kL6pm6sMDKc….yek8vRbR7QUV6b0b32792d976a7c02b8debd8e0f8382.jpg
以上两种路径的格式正好说明了问题,我们原本的用来解析filePath的方法用在安卓系统上那肯定是返回undefined,所以要对安卓系统重新写一个解析
例如
// An highlighted block
var filePath = xxx //获取到选择本地图片的临时路径
var cloudPath //文件上传路径
wx.getSystemInfo({
success: function(res){
if(res.platform == 'android'){
cloudPath = filePath.split('//')[1] //安卓系统的解析方法
}else{
cloudPath = filePath.split('.')[2] + filePath.match(/\.[^.]+?$/)[0]
}
}
})
wx.cloud.uploadFile({
cloudPath: cloudPath,
filePath: filePath,
success: res => {
console.log('上传成功' , res)
},
fail: e => {
console.error('上传失败', e)
}
})