回覆列表
  • 1 # 使用者6267333189551

    最近我們專案需要一臺圖片伺服器儲存使用者頭像,我們使用zimg處理和儲存圖片,下面簡單介紹一下如何使用PHP上傳圖片到zimg,並獲取相應圖片的返回資訊使用curl庫實現上傳根據zimg使用文件,我們想要讓zimg返回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;如果想測試程式碼的話,請把上面的uploadurl改成你自己的zimg伺服器地址,並把image_file改成你需要上傳的圖片的路徑

  • 中秋節和大豐收的關聯?
  • 《捉妖記2》是否值得一看?