Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Methode zum Implementieren des Hochladens von Bildern auf den ZIMG-Server

PHP-Methode zum Implementieren des Hochladens von Bildern auf den ZIMG-Server

墨辰丷
墨辰丷Original
2018-05-31 14:15:091815Durchsuche

zimg ist ein Bildspeicherdienst mit Bildverarbeitungsfunktion. Sie können Bilder auf den Zimg-Server hochladen und die verarbeiteten Bilder dann über die URL mit Parametern abrufen. Heute besteht unser Hauptinhalt darin, Bilder auf Zimg hochzuladen Server, ich hoffe, es gefällt euch allen

Seit Kurzem 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 zimg und erhalten Sie die entsprechenden Bilder.

Verwenden Sie die Curl-Bibliothek zum Hochladen

Wenn wir möchten, dass zimg JSON-Informationen zurückgibt, müssen wir gemäß der Zimg-Nutzungsdokumentation raw_posten Um das Bild hochzuladen, folgt 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 ändern Sie image_file in das Bild, das Sie hochladen müssen. Pfad

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Lernen aller hilfreich sein wird.

Verwandte Empfehlungen:

phpDetaillierte Erläuterung der Schritte zum Crawlen von Tmall- und Taobao-Produktdaten (mit Code)

Detaillierte Erläuterung der Schritte zum Aufbau einer PHP-Entwicklungsumgebung mit Docker

phpZusammenfassung der Öffnungsmethoden für Formatdateien

Das obige ist der detaillierte Inhalt vonPHP-Methode zum Implementieren des Hochladens von Bildern auf den ZIMG-Server. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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