已知图片base64流如何上传到其他服务器

现在有个需求:上传头像,先剪切,最后把剪切的图片上传到服务器,这个时候我只能拿到剪切图片的base64流数据。我要根据这个数据把图片上传到另一台服务器(专门放图片文件的服务器)并且返回图片url,我应该怎么弄???

阅读 4.5k
2 个回答

我说一下我的方法
先用 base64_decode()转成 图片,然后file_put_contents()写入文件夹内,然后读取路径下的文件上传到你想上传的服务器,返回url



/**
 * 保存64位编码图片
 */

 function saveBase64Image($base64_image_content){

        if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)){

                  //图片后缀
                  $type = $result[2];
                  if($type=='jpeg'){
                        $type='jpg';
                  }

                  //保存位置--图片名
                  $image_name=date('His').str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT).".".$type;
                  $image_url = 'uploads/image/'.date('Ymd').'/'.$image_name;           
                  if(!is_dir(dirname('./'.$image_url))){
                         mkdir(dirname('./'.$image_url));
                        chmod(dirname('./'.$image_url), 0777);
                        umask($oldumask);

                  }
                 
                  //解码
                  $decode=base64_decode(str_replace($result[1], '', $base64_image_content));
                  if (file_put_contents('./'.$image_url, $decode)){
                        $data['code']='0';
                        $data['imageName']=$image_name;
                        $data['image_url']=$image_url;
                        $data['type']=$type;
                        $data['msg']='保存成功!';
                  }else{
                    $data['code']='1';
                    $data['imgageName']='';
                    $data['image_url']='';
                    $data['type']='';
                    $data['msg']='图片保存失败!';
                  }
        }else{
            $data['code']='1';
            $data['imgageName']='';
            $data['image_url']='';
            $data['type']='';
            $data['msg']='base64图片格式有误!';


        }       
        return $data;


 }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
1 篇内容引用
推荐问题