PHP处理公众号 上传图片

第一步:引入工作

<script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
<script>
wx.config({
        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
        appId: '<?=$signPackage["appId"];?>', // 必填,公众号的唯一标识
        timestamp:'<?=$signPackage["timestamp"];?>', // 必填,生成签名的时间戳
        nonceStr: '<?=$signPackage["nonceStr"];?>', // 必填,生成签名的随机串
        signature: '<?=$signPackage["signature"];?>',// 必填,签名,见附录1
        jsApiList: [
            'checkJsApi',
            'startRecord',
            'stopRecord',
            'translateVoice',
            'scanQRCode',// 微信扫一扫接口
            'openCard',
            'getLocation',
            'chooseImage',//拍照或选择图片
            'uploadImage',//上传图片
            'downloadImage',
            'getLocalImgData',
        ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
    });
    wx.ready(function() {
        wx.checkJsApi({
            jsApiList : ['scanQRCode',
                'getLocation',
                'chooseImage',//拍照或选择图片
                'uploadImage',//上传图片
                'downloadImage',
                'getLocalImgData',],
            success : function(res) {
                //            console.log(res);
            }
        });
    });
</script>

第二步:前端将本地id与服务器id保存,并且相关联

var images = {
        localId: [],
        serverId: [],
        arr:[]
    };
wx.chooseImage({
            count: 1, // 默认9
//            sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
            sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
            success: function(res) {
                images.localId = res.localIds;
             	var key = res.localIds;
                    wx.uploadImage({
                        localId: images.localId[i],
                        success: function(res) {
                            images.serverId.push(res.serverId);
                            images.arr[key] = res.serverId;
                        },
                        fail: function(res) {
                            alert(JSON.stringify(res));
                        }
                    });

                }
            }
        });

第三步: 将图片id上传

$.ajax({
            url:'/patient/visit/photo_save',
            type:'post',
            data:{
                serverid:serverid,
                el:el,//图片名称
            },
            async: false,    // 使用同步操作
            timeout : 50000, //超时时间:50秒
            success:function (data) {
               
            },
            error:function (data) {
                alert(JSON.stringify(data));
            }
        })

第四步:PHP后端

$photo = (strpos($serverid,'@@') !== false)?explode('@@',$serverid):array();
if(count($photo)){
            $jssdk = new JSSDK();//需要引入公众号的jssdk文件
            $access_token = $jssdk->getAccessToken();
            foreach ($photo as $key=>$value){
                if($value){
                    //根据微信JS接口上传了图片,会返回上面写的images.serverId(即media_id),填在下面即可
                    $str = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=".$access_token."&media_id=".$value;
                    //获取微信“获取临时素材”接口返回来的内容(即刚上传的图片)
                    $a = file_get_contents($str);
                    $inspect->photo = $fail.$key.'.jpg';//新文件名
                    $resource = fopen("/images/medical/".$inspect->photo , 'w+');//以读写方式打开一个文件,若没有,则自动创建
                    fwrite($resource, $a);//将图片内容写入上述新建的文件
                    fclose($resource);//关闭资源
                }
            }
        }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值