Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert das Hochladen von Bildern in das zimg server_php-Beispiel

PHP implementiert das Hochladen von Bildern in das zimg server_php-Beispiel

WBOY
WBOYOriginal
2016-12-05 13:28:151447Durchsuche

In letzter Zeit benötigt unser Projekt einen Bildserver zum Speichern von Benutzeravataren. Hier finden Sie eine kurze Einführung in die Verwendung von PHP zum Hochladen von Bildern auf zimg und zum Abrufen der Rückgabeinformationen der entsprechenden Bilder 🎜>

Verwenden Sie die Curl-Bibliothek zum Hochladen

Wenn wir möchten, dass Zimg JSON-Informationen zurückgibt, müssen wir laut Zimg-Nutzungsdokumentation raw_post verwenden, um das Bild hochzuladen. Das Folgende ist der Democode

$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;

Wenn Sie den Code testen möchten, ändern Sie bitte die Upload-URL oben in Ihre eigene ZIMG-Serveradresse und image_file in den Pfad des Bildes, das Sie hochladen müssen

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn