加入收藏 | 设为首页 | 会员中心 | 我要投稿 平凉站长网 (https://www.0933zz.com.cn/)- 图像处理、语音技术、媒体智能、运维、低代码!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-06-14 09:51:29 所属栏目:PHP教程 来源:互联网
导读:本文实例讲述了PHP7基于curl实现的上传图片功能。分享给大家供大家参考,具体如下: 根据php版本不同,curl模拟表单上传的方法不同 php5.5之前: $curl = curl_init(); if (defined(CURLOPT_SAFE_UPLOAD)) { curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false);
    本文实例讲述了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
    } //phpfensi.com
    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);
    ?> 

(编辑:平凉站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读