PHP method to implement uploading images to zimg server

墨辰丷
Release: 2023-03-28 17:02:01
Original
1878 people have browsed it

zimg is an image storage service with image processing function. You can upload images to the zimg server, and then obtain the processed images through the URL with parameters. Today our main content is to use php to upload images to On the zimg server, I hope you all like it

Recently our project requires a picture server to store user avatars. We use zimg to process and store pictures. Here is a brief introduction on how to use PHP to upload pictures to zimg and obtain the corresponding pictures. Return information

Use curl library to implement upload

According to the zimg usage documentation, if we want zimg to return json information, we must upload the image through raw_post. The following is the demo code

$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;
Copy after login

If you want to test the code, please change the uploadurl above to your own zimg server address, and change image_file to the image you need to upload. Path

Summary: The above is the entire content of this article, I hope it will be helpful to everyone's learning.

Related recommendations:

php Detailed explanation of the steps to crawl Tmall and Taobao product data (with code)

Detailed explanation of the steps to build a PHP development environment with Docker

phpSummary of format file opening methods

The above is the detailed content of PHP method to implement uploading images to zimg server. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template