// 5.3 上传图片
  document.querySelector('#uploadImage').onclick = function () {
    if (images.localId.length == 0) {
      alert('请先使用 chooseImage 接口选择图片');
      return;
    }
    var i = 0, length = images.localId.length;
    images.serverId = [];
    function upload() {
      wx.uploadImage({
        localId: images.localId[i],
        success: function (res) {
          i++;
          alert('已上传:' + i + '/' + length);
          images.serverId.push(res.serverId);//push() 方法可向数组的末尾添加一个或多个元素
          if (i < length) {
            upload();
          }
        },
        fail: function (res) {
          alert(JSON.stringify(res));
        }
      });
    }
    upload();
  };
这是微信提供的上传图片的接口,我已经调试好可以上传图片和拍照照片到微信服务器,请问有人知道怎么把图片上传到自己的服务器吗  
前端拿到serverId(即media_id)后,将此作为参数去请求后台“获取临时素材接口”
1.//根据微信JS接口上传了图片,会返回上面写的images.serverId(即media_id),填在下面即可  
2. $str = "https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token=''&media_id=''";  
3. //获取微信“获取临时素材”接口返回来的内容(即刚上传的图片)  
4. $a = file_get_contents($str);  
5.//__DIR__指向当前执行的PHP脚本所在的目录  
6. echo __DIR__;  
7. //以读写方式打开一个文件,若没有,则自动创建  
8. $resource = fopen(__DIR__."/1.jpg" , 'w+');  
9. //将图片内容写入上述新建的文件  
10. fwrite($resource, $a);  
11. //关闭资源  
12. fclose($resource);  
这是网上搜集到的但不知怎么用这段代码加在哪里?有大神嘛?多谢指教

解决方案 »

  1.   


            $MEDIA_ID = $_POST['mediaid'];
            $return = array();
            $path = './upload';//定义保存路径
            $dir = realpath($path);//为方便管理图片 保存图片时 已时间作一层目录作区分
            $tardir=$dir.'/'.date('Y_m_d');
            if(!file_exists($tardir)){
                mkdir($dir.'/'.date('Y_m_d'));
            }
            $ACCESS_TOKEN=$jssdk->getAccessToken();
            $url="http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=$ACCESS_TOKEN&media_id=$MEDIA_ID";
    //        var_dump($url);exit;
            $ch = curl_init($url);
    $ranfilename=time().rand().".jpg";
    $filename=$path.'/'.date('Y_m_d').'/'.$ranfilename;
    $tarfilename=$tardir."/".$ranfilename;
            $fp = fopen($tarfilename, "w");

            curl_setopt($ch, CURLOPT_FILE, $fp);
            curl_setopt($ch, CURLOPT_HEADER, 0);        curl_exec($ch);
            curl_close($ch);
            fclose($fp);
      

  2.   

    这段代码要封装在函数里在前端通过点击触发调用嘛?附上官方demo文件结构小白请大侠指教