• PHP微信公众号调用微信摄像头实现保存图片至自己服务器后返回图片链接


    前端

    $(".jxs_sq_div_list img").on('click',function () {
        takePicture(this)
    });
    function takePicture(e) {
        wx.chooseImage({
            count: 1,
            needResult: 1,
            sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
            sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
            success: function (data) {
                localIds = data.localIds[0];   // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
                wx.getLocalImgData({
                    localId: localIds, // 图片的localID
                    success: function (res) {
                        var localData = res.localData; // localData是图片的base64数据,可以用img标签显示
                        $.ajax({
                            type: "post",
                            url: "{:U('Index/saveBase64Image')}",
                            data: {
                                "base64_image_content":localData
                            },
                            cache: false,
                            async : true,
                            dataType: "json",
                            success: function (rey)
                            {
                                $(e).attr('src',rey);
                            },
                            error:function (XMLHttpRequest, textStatus, errorThrown) {
                                layer.msg('请求失败!');
                            }
                        });
    
                    },fail:function(res){
                        alert("显示失败");
                    }
                });
            },
            fail: function (res) {
                ik_mobel_gb();
                alterShowMessage("操作提示", JSON.stringify(res), "1", "确定", "", "", "");
            }
        });
    }

    PHP

    //base64图片上传
    public function saveBase64Image(){
        $base64_image_content = $_POST['base64_image_content'];
        $fenge = explode(":",$base64_image_content);
        if(count($fenge) <  2){
            $base64_image_content = "data:image/png;base64,".$base64_image_content;
        }
        //设置图片保存路径
        $path = "Public/Uploads/".date("Y-m-d",time())."/";
        if (!is_dir($path)){ //判断目录是否存在 不存在就创建
            mkdir($path,0777,true);
        }
        $imageName = "25220_".date("His",time())."_".rand(1111,9999).'.png';
        $data =  $this->base64_image_content($base64_image_content,$path,$imageName);
        $data = C('url').$data;
        $this->ajaxReturn($data);
    }

    注意:如果为微信公众号的话需要先获取相机权限,否则无法调用相机接口!

  • 相关阅读:
    oracle 监听静态注册举例解析
    oracle监听动态注册与静态注册
    oracle startup mount nomount 区别
    RAC的时间同步问题
    RAC环境TNS-12541报错处理
    Oracle参数修改是否需要重启等
    面试提纲
    Dubbo是什么
    为什么要用dubbo,dubbo和zookeeper关系
    Java的参数传递是「按值传递」还是「按引用传递」?
  • 原文地址:https://www.cnblogs.com/ffyun/p/13826473.html
Copyright © 2020-2023  润新知