调用微信jssdk,页面js由前端写好,后台需要把微信签名传到前端,需要从前端得到图片的url 安卓和iphone传过来的不一样,iphone是经过base64加密的
先在控制器里写一个方法加载微信类库
这里引入编辑模版,把微信签名传到前台模版,获取微信签名用到的是jssdk里写好的方法。
前台根据传过去的微信签名判断是是不是微信上传,然后前台通过js 调用相关方法,并且把iphone上传的图片的base64数据,以及安卓上传的在服务器端的id 返回到后台(此处省略一万字,十万图,无数js...),然后在后台进行数据的处理
先判断不为空 说明有图片上传,后台得到了微信传过来的图片的url
正则匹配base64,如果匹配到了就进行iphone的相关操作: save_base64_photo()是自己写的(扩展函数库里), 用于解密并保存iphone上传的图片到指定路径,并把路径返回,然后将返回的路径当参数传到自己写的do_upload_avatar()方法里,进行生成相关缩略图的操作,生成的缩略图按照phpsso的格式 这样通过phpsso的方法就可以得到图片了。
如果没有匹配到base64 那么就说明是安卓上传的,安卓上传的就需要用到jssdk里的方法把图片下载并保存了。 调用getmedia() 是jssdk里的方法,返回的也是如片路径,后续就是同上。
一些细节:jssdk里获取access_token的时候,appid之类的要配置对,如果这里没配置对的话,即便是前台传参正确,最后getmedia返回的文件路径也不会对,我就是返回了一个后最为plain的村文本路径。
iphone传到后台的是bas64 加密的,安卓传到后台的是一串字符串。
iphone:
安卓:
写的比较乱,抽空整理