PHPは画像をzmgサーバにアップロードすることを実現します。


最近のプロジェクトでは、画像サーバーにユーザーの顔写真を保存する必要があります。zmgを使って画像を処理し、保存します。PHPを使ってzmgにアップロードする方法を簡単に紹介します。
curlライブラリを使ってアップロードを実現します。
zmgの文書使用によって、私達はzmgをjson情報に戻したいです。raw_postアップロード画像、以下はデモンストレーションコードです。

$upload_url = 'http://192.168.0.99:5000/upload';

$image_file = './test.jpg';

//       
$value = explode(".", $image_file);
$extension = strtolower(array_pop($value));

//           ,        
$dir = 'aurthur';
$save_path = 'uploads/'.$dir.'/'.date('Y').'/'.date('md').'/';
$save_rule = md5(uniqid(mt_rand(), true));
if(!is_dir($save_path)){
  if(false === mkdir($save_path, 0700, true)){
    exit('       ');
  }
}
$save_image_file = $save_path.$save_rule.".$extension";

//           
file_put_contents($save_image_file, file_get_contents($image_file));

//               (    )
$realpath = realpath($save_image_file);

//       zimg       
$ch = curl_init();

//            $post_data ;
$post_data = file_get_contents($realpath);

$headers = array();
//        header
$headers[] = 'Content-Type:'.$extension;

curl_setopt($ch, CURLOPT_URL, $upload_url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);// raw_post  

$info = curl_exec($ch);
curl_close($ch);

$json = json_decode($info, true);
$signature = $json['info']['md5'];
echo $signature;

コードをテストしたいなら、上のupoloadurlを自分のzmgサーバーの住所に変えてください。イメージアップしてください。fileをあなたがアップロードしたい画像のパスに変更します。