PHP实现上传图片到 zimg 服务器

 更新时间:2016年10月19日 08:46:28   作者:aurthurxlc  
zimg是一个具有图片处理功能的图片存储服务,你可以上传图片到zimg服务器,然后通过带有参数的URL来获取被处理过的图片,今天我们的主要内容是使用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 改成你需要上传的图片的路径

相关文章

  • PHP加MySQL消息队列深入理解

    PHP加MySQL消息队列深入理解

    这篇文章主要介绍了PHP+MySQL消息队列深入理解,有感兴趣的同学可以研究下
    2021-02-02
  • 完善CodeIgniter在IDE中代码提示功能的方法

    完善CodeIgniter在IDE中代码提示功能的方法

    这篇文章主要介绍了完善CodeIgniter在IDE中代码提示功能的方法,需要的朋友可以参考下
    2014-07-07
  • 详解phpstorm2020最新激活方法

    详解phpstorm2020最新激活方法

    PhpStorm可随时帮助用户对其编码进行调整,运行单元测试或者提供可视化debug功能,这篇文章主要介绍了phpstorm2020最新激活方法(2020年7月仍可用),需要的朋友可以参考下
    2020-09-09
  • Uchome1.2 1.5 代码学习 common.php

    Uchome1.2 1.5 代码学习 common.php

    这是uchome 用到的php代码,大家在学习编程的时候,可以看下当时比较成熟的一些cms系统,前提是你对程序比较熟悉啊,要不看了会打消学习积极性的。
    2009-04-04
  • php制作的简单验证码识别代码

    php制作的简单验证码识别代码

    近期研究一些突破验证码方面的知识,记录下来。一方面算是对这几天学习知识的总结帮助自己理解;另一方面希望对研究这方面的技术同学有所帮助;另外也希望引起网站管理者的注意,在提供验证码时多些考虑进去。由于刚刚接触这方面的知识,理解比较浅显,有错误再所难免
    2016-01-01
  • php文件上传的例子及参数详解

    php文件上传的例子及参数详解

    这篇文章主要介绍了php文件上传的例子及参数,有需要的朋友可以参考一下
    2013-12-12
  • PHP Ajax JavaScript Json获取天气信息实现代码

    PHP Ajax JavaScript Json获取天气信息实现代码

    这篇文章主要介绍了PHP Ajax JavaScript Json实现天气信息获取 的相关资料,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • YII2框架中查询生成器Query()的使用方法示例

    YII2框架中查询生成器Query()的使用方法示例

    这篇文章主要介绍了YII2框架中查询生成器Query()的使用方法,结合实例形式详细分析了YII2查询生成器Query()的基本功能与使用方法,需要的朋友可以参考下
    2020-03-03
  • thinkPHP5框架设置404、403等http状态页面的方法

    thinkPHP5框架设置404、403等http状态页面的方法

    这篇文章主要介绍了thinkPHP5框架设置404、403等http状态页面的方法,结合实例形式分析了thinkPHP5框架设置404页面的相关配置、视图显示页面及控制器调用相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • Yii视图CGridView实现操作按钮定义地址示例

    Yii视图CGridView实现操作按钮定义地址示例

    这篇文章主要介绍了Yii视图CGridView实现操作按钮定义地址的方法,涉及Yii视图按钮操作相关技巧,需要的朋友可以参考下
    2016-07-07

最新评论