- 需求的场景描述(希望解决的问题)
安卓手机上,canvasToTempFilePath 转临时路径,用uploadFile上传图片,后端无法接受二进制流;
该临时路径转base64,无法解码成图片,转base64方法:
wx.getFileSystemManager().readFileSync(res.tempFilePath, 'base64')
- 希望提供的能力
求助大神
框架类型 | 问题类型 | API/组件名称 | 终端类型 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|
小程序 | 需求 | canvasToTempFilePath、uploadFile | 客户端 | 6.7.3 | 2.4.1 |
3 个回答
后台应该是要求了 file 上传
canvasToTempFilePath生成的临时路径,生成是有延时的,加200毫秒延时就差不多了,否则虽然生成了路径,但里面文件有时没生成完,你无法读取,我是这么理解的
canvasToTempFilePath方法生成的临时路径直接传递到后台用就可以了,他不是二进制流,也不需要临时路径转base64,和普通的上传图片是一样的方式。
上面第一张图片,我是直接传到后台的,没有转base64。ios上可以,而android上却不行
报什么错误信息?
我们后端,说无法通过name值,接受二进制流
还有个问题是,canvasToTempFilePath生成的临时路径,通过wx.getFileSystemManager().readFileSync(res.tempFilePath, 'base64')转base64,在ios上可以实现,而android上却不能,android上无法将转码后的base64解码成图片
后台能上传图片吗?只要你小程序发起的请求及传参是正确的,后台的处理方式和普通的浏览器上传是一样的,可以先确认下后台的上传图片接口是不是有问题。