调取微信上传图片接口

直接上代码:

HTML部分

<div class="ch0_btn col-35" @click="uploadImage">+添加图片(选填)</div>
<input type="hidden" id="midia_id">

JS部分

$$(document).on('click',"#uploadImage",function () {
        wx.chooseImage({
            count: 1, // 默认9
            sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
            success: function (res) {
                var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片

                //判断选择的照片张数
                if (localIds.length > 1) {
                    myApp.alert("亲,请选择一张照片");
                    return;
                }
                wx.uploadImage({
                    localId: localIds[0].toString(), // 需要上传的图片的本地ID,由chooseImage接口获得
                    isShowProgressTips: 1, // 默认为1,显示进度提示
                    success: function (res) {
                        var serverId = res.serverId; // 返回图片的服务器端ID

                        //保存图片

                        $$.post("{:url('Chuti/upload')}",
                        {
                            serverId: serverId
                        },
                        function (data) {
                            $$("#media_id").val(data);
                        });

                        myApp.alert("上传成功!");
                    }
                });
            }
        });
    });

 

接口这里用的是PHP语言

/**
     * 微信图片上传接口
     * @return mixed
     */
    public function saveImg() {

        //获得多个图片的链接
        $pic = $_POST['serverId'];
        //判断文件夹以及路径是否存在
        if (!file_exists($_SERVER['DOCUMENT_ROOT'] . '/public/uploads/dati/images') || !is_dir($_SERVER['DOCUMENT_ROOT'] . '/public/uploads/dati/images')) {
            //不存在就创建文件夹
            mkdir($_SERVER['DOCUMENT_ROOT'] . '/public/uploads/dati/images', 511);
        }

        //判断子文件夹vote以及路径是否存在
        $firstLetterDir = $_SERVER['DOCUMENT_ROOT'] . '/public/uploads/dati/images';
        if (!file_exists($firstLetterDir) || !is_dir($firstLetterDir)) {
            //不存在就创建子文件夹
            mkdir($firstLetterDir, 511);
        }

        //以日期为文件夹命名
        $sub_dir = date('Ymd');
        $firstLetterDir = $_SERVER['DOCUMENT_ROOT'] . '/public/uploads/dati/images/' . $sub_dir;
        //判断子文件夹$sub_dir以及路径是否存在
        if (!file_exists($firstLetterDir) || !is_dir($firstLetterDir)) {
            mkdir($firstLetterDir, 511);
        }

        //下面开始上传文件到服务器
        //文件名
        $file_name = date('YmdHis') . '_' . rand(10000, 99999) . '.jpg';

        //文件真实路径
        $pic_wall_save_path = $_SERVER['DOCUMENT_ROOT'] . '/public/uploads/dati/images/' . $sub_dir . '/' . $file_name;//这里执行了

//获取微信token

        $wechat = wechat();
$token = $wechat->checkAuth();
        //文件存到数据库的路径
//            $file_web_path = C('site_url') . '/Uploads/editorNew/' . $sub_dir . '/' . $file_name;
        //获取文件内容
//        $accessToken = get_access_token();//这里不执行
        $url = 'http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=' . $token . '&media_id=' . $pic;

        //把文件内容转化为字符串
        $imgdata = file_get_contents($url);//返回 空值
//        echo $imgdata;
        //打开指定文件
        $fp = fopen($pic_wall_save_path, 'w');//这里没有输出
        //开始写入文件
        fwrite($fp, $imgdata);
//            $pics[] = $file_web_path;
        //关闭文件
        fclose($fp);

        echo '/public/uploads/dati/images/' . $sub_dir . '/' . $file_name;

        die;
    }

 

posted on 2019-05-05 15:10  一只傻阿贝哟  阅读(275)  评论(0编辑  收藏  举报

导航