小程序对于 实现图片拍照并上传这个功能 是一个坑,第一步还好点,直接用微信官网的 wx.chooseImage api,这个我就不细说了,照着官方文档抄就完事了。
我要说的是后面的坑,这个地方你虽然能够获得到图片,并且能在页面显示,但这些都是表面现象,因为这个图片的地址只是微信暂存的地址。或许有些人会说,效果出来就完事了,管他是不是暂存的地址呢。
我就要说第二个坑了,苹果端和安卓端两者有区别,微信小程序暂存的地址安卓端是可以显示,苹果端就不行了,因为暂存的地址格式不对,无法显示。
这个地方要怎么做呢,有三种做法,
第一种转换苹果端的格式,可以用base64进行转换。然后再调提交图片的接口。
第二种,在调提交图片的接口之前,让后端再给你一个返回服务器图片地址的接口,拿着微信本地暂存的图片地址 去掉返回图片地址的接口,把这个地址在页面上显示,然后拿着这个地址去掉上传图片的接口。这个方法呢,后端比较难搞,因为要给你一个接口,这个接口从哪里来呢,好像还要和微信服务器有关系(我们后端说的),这个方法比较前一个会有一点瑕疵,图片出来的时候比较慢,这个慢是因为调了接口。
第三种,第三种和第二种差不多,只不过后端不需要给调图片路径的接口。前端需要麻烦一点,用微信的 wx.uploadFile ( 这个api是关于上传文件的)上传图片,这个api有回调函数,成功就是你上传成功传回来的地址,因为我用的是第三种方法,直接贴图好吧