微信端打开手机相机拍照,图片保存到服务器使用微信的JSSDK接口,主要用于拍照或者从手机相册中选择图片(chooseImage),上传图片接口(上传图片)参考资料:https://mp.weixin.qq.com/wiki...https://www.easywechat.com/do...1:引入微信js二:通过config接口注入权限验证配置wx.config(wechat->js->config(['chooseImage','uploadImage','downloadImage'])?>);三:微信相机接口wx.chooseImage({count:1,//默认9sizeType:['original','compressed'],//ok指定是原图还是压缩图,默认都有sourceType:['album','camera'],//可以指定来源是相册还是相机,默认都成功:function(res){varlocalIds=res.localIds;//返回所选照片的??本地ID列表,localId可以作为img标签的src属性显示图片}});四:上传照片到微信服务器接口wx.uploadImage({localId:localIds,//必填上传图片的本地ID,从chooseImage接口获取isShowProgressTips:1,//默认为1,进度提示显示success:function(res){varserverId=res.serverId;//返回图片的服务器端ID},fail:function(){//上传图片微信服务器失败返回false;}});五:从微信服务器下载图片到本地服务器前端://url表示php接口地址//serverId表示图片的服务器端ID$.post(url,{'media_id':serverId},function(data){if(data.type=='success'){//上传成功}else{//上传失败}});php(interface)publicfunctionactionUpload(){Yii::$app->response->format=Response::FORMAT_JSON;$request=Yii::$app->request;$mediaId=$request->post('media_id');if(empty($mediaId)){return['type'=>'error','message'=>'参数错误!'];}//临时素材$temporary=Yii::$app->wechat->material_temporary;//创建服务器目录$path='wechat/'.日期('Ymd',时间())。'/';$fullPath=Yii::getAlias('@webroot')。'/'。$路径;如果(!is_dir($fullPath)){FileHelper::createDirectory($fullPath);}//设置图片名称$fileName=Yii::$app->getSecurity()->generateRandomString().'-'.date('他的',time());//从服务器下载临时素材到本地服务器$temporary->下载($mediaId,$fullPath,$fileName);返回['类型'=>'成功','url'=>$路径。$文件名。'.jpg',];}前端代码整合
