PHP實現上傳圖片到zimg服務器?
最近我們項目需要一臺圖片服務器存儲用戶頭像,我們使用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改成你需要上傳的圖片的路徑