• 技术文章 >后端开发 >php教程

    PHP7基于curl实现的上传图片功能php技巧

    jacklovejacklove2018-06-25 16:59:30原创1621
    这篇文章主要介绍了PHP7基于curl实现的上传图片功能,结合实例形式对比分析了php5.5之前与php7版本的curl图片上传功能相关实现与使用技巧,需要的朋友可以参考下

    本文实例讲述了PHP7基于curl实现的上传图片功能。分享给大家供大家参考,具体如下:

    根据php版本不同,curl模拟表单上传的方法不同

    php5.5之前

    $curl = curl_init();
    if (defined('CURLOPT_SAFE_UPLOAD')) {
      curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false);
    }
    $data = array('file' => '@' . realpath($path));//‘@' 符号告诉服务器为上传资源
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_POST, 1 );
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_USERAGENT,"TEST");
    $result = curl_exec($curl);
    $error = curl_error($curl);

    php5.5之后,到php7

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true);
    $data = array('file' => new \CURLFile(realpath($path)));
    url_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_POST, 1 );
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_USERAGENT,"TEST");
    $result = curl_exec($curl);
    $error = curl_error($curl);

    下面提供一个兼容的方法:

    $curl = curl_init();
    if (class_exists('\CURLFile')) {
     curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true);
    $data = array('file' => new \CURLFile(realpath($path)));//>=5.5
    } else {
     if (defined('CURLOPT_SAFE_UPLOAD')) {
      curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false);
     }
     $data = array('file' => '@' . realpath($path));//<=5.5
    }
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_POST, 1 );
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_USERAGENT,"TEST");
    $result = curl_exec($curl);
    $error = curl_error($curl);

    其中:

    $path:为待上传的图片地址

    $url:目标服务器地址

    例如

    $url="http://localhost/upload.php";
    $path = "/bg_right.jpg"

    upload.php示例:

    <?php
      file_put_contents(time().".json", json_encode($_FILES));
      $tmp_name = $_FILES['file']['tmp_name'];
      $name = $_FILES['file']['name'];
      move_uploaded_file($tmp_name,'audit/'.$name);
    ?>

    您可能感兴趣的文章:

    PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析php技巧

    PHP区块查询实现方法分析php技巧

    可兼容php5与php7的cURL文件上传功能实例分析php技巧

    以上就是PHP7基于curl实现的上传图片功能php技巧的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:PHP7 curl 上传图片
    上一篇:PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析php技巧 下一篇:关于ThinkPHP中的异常处理详解_php实例
    Web大前端开发直播班

    相关文章推荐

    • 详细介绍PHP的session反序列化漏洞• php-工厂模式• php图片上传类 附调用方法,_PHP教程• PHP中的常见魔术方法功能作用及用法实例_PHP教程• php代码之要点分析一_PHP教程

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网