• 欢迎访问magento4you博客,我们提供magento建站、技术咨询、IT运维、支持培训、二次开发服务及模板定制,联系QQ:283475615
  • Magento入门教程 二次开发 模板定制 联系QQ:283475615
  • magento运营 SEO SEM 数字营销 广告竞价 联系QQ:283475615
  • 如果您觉得本站对你有帮助,那么赶紧使用Ctrl+D 收藏吧!

php curl上传图片到zimg如何获取json返回数据

Magento开发 6年前 (2015-05-21) 2133次浏览 0个评论

我刚开始使用zimg的时候,也遇到这个问题,始终没搞懂那句curl -H命令在php如何实现,起码历经了一个礼拜。先正则解析,但一直有这个心结,后来终于误打误撞,搞定了!

不多说,直接上代码。

php代码:

//TODO 修改为配置
$zimg_upload_url = 'http://fanrong33.com:4869/upload';

// 存储图片到本地
$remote_file = 'http://gd2.alicdn.com/bao/uploaded/i2/T1OxmwFP4bXXXXXXXX_!!0-item_pic.jpg';
Log::write('collect picture to zimg, image_file:'.$remote_file, Log::INFO);
$ext = get_file_ext($remote_file);

$dir = 'article';
$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.".$ext";

$bytes = file_put_contents($save_image_file, file_get_contents($remote_file));
///////////////////////////////
// 返回存储到服务器的真实图片地址
$realpath = realpath($save_image_file);

// 上传图片到zimg图片存储服务
$ch = curl_init();

// 关键在这里!
$post_data = file_get_contents($realpath); // raw_post方式
// 如果是是一个数组,则content_type自动为multipart/form-data
//        $post_data = array(
//            'file' => "@$realpath"
//        );
$headers = array();
$headers[] = 'Content-Type:'.$ext; // 还有这里!

curl_setopt($ch, CURLOPT_URL, $zimg_upload_url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//启用时会发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。
curl_setopt($ch, CURLOPT_POST, true);  
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

$info = curl_exec($ch);
curl_close($ch);

$json = json_decode($info, true);
$signature = $json['info']['md5'];

极客公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php curl上传图片到zimg如何获取json返回数据
喜欢 (0)
发表我的评论
取消评论

*

code

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址