一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP使用curl請求實現post方式上傳圖片文件功能示例

PHP使用curl請求實現post方式上傳圖片文件功能示例

2019-09-23 11:05小虎的碼農博客 PHP教程

這篇文章主要介紹了PHP使用curl請求實現post方式上傳圖片文件功能,結合實例形式分析了php使用curl進行文件傳輸的相關設置與使用操作技巧,需要的朋友可以參考下

本文實例講述了PHP使用curl請求實現post方式上傳圖片文件功能。分享給大家供大家參考,具體如下:

在調用第三方api接口時,有時會遇到通過http協議上傳圖片,以下是一個微信公眾平臺新增永久素材的例子;

php代碼:

/* 使用curl函數 */
$url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESS_TOKEN&type=image";
$post_data = array(
  'media' => '@bag03.jpg',
);
$response = curl_http($url, 'POST', $post_data);
$params = array();
$params = json_decode($response,true);
if (isset($params['errcode']))
{
  echo "error:" . $params['errcode'];
  echo "msg :" . $params['errmsg'];
  exit;
}
var_dump( $params );
/**
 * http請求方式: 默認GET
 */
function curl_http($url, $method="GET", $postfields){
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  curl_setopt($ch, CURLOPT_URL, $url);
  switch ($method) {
    case "POST":
      curl_setopt($ch, CURLOPT_POST, true);
      if (!empty($postfields)) {
        $hadFile = false;
        if (is_array($postfields) && isset($postfields['media'])) {
          /* 支持文件上傳 */
          if (class_exists('\CURLFile')) {
            curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
            foreach ($postfields as $key => $value) {
              if (isPostHasFile($value)) {
                $postfields[$key] = new \CURLFile(realpath(ltrim($value, '@')));
                $hadFile = true;
              }
            }
          } elseif (defined('CURLOPT_SAFE_UPLOAD')) {
            if (isPostHasFile($value)) {
              curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
              $hadFile = true;
            }
          }
        }
        $tmpdatastr = (!$hadFile && is_array($postfields)) ? http_build_query($postfields) : $postfields;
        curl_setopt($ch, CURLOPT_POSTFIELDS, $tmpdatastr);
      }
      break;
    default:
      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); /* //設置請求方式 */
      break;
  }
  $ssl = preg_match('/^https:\/\//i',$url) ? TRUE : FALSE;
  curl_setopt($ch, CURLOPT_URL, $url);
  if($ssl){
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // https請求 不驗證證書和hosts
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // 不從證書中檢查SSL加密算法是否存在
  }
  $response = curl_exec($ch);
  curl_close($ch);
  if(empty($response)){
    exit("錯誤請求");
  }
  return $response;
}
function isPostHasFile($value)
{
  if (is_string($value) && strpos($value, '@') === 0 && is_file(realpath(ltrim($value, '@')))) {
    return true;
  }
  return false;
}

也可以使用php內置的系統函數,如果使用過程中出現問題,建議查看是否啟用相應的系統函數。

使用exec系統函數:

/* 使用exec函數 */
$command = 'curl -F media=@'.$filepath.' "https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=image"';
$retval = array();
exec($command, $retval, $status);
$params = array();
$params = json_decode($retval[0],true);
if ($status != 0) {
  $params = array(
    'errcode'  => '-100',
    'errmsg'  => '公眾號服務出錯,請聯系管理員',
  );
}
return $params;

使用system系統函數:

/* 使用system函數 */
$command = 'curl -F media=@'.$filepath.' "https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=image"';
$retval = 1;
$last_line = system($command, $retval);
$params = array();
$params = json_decode($last_line,true);
if ($retval != 0) {
  if (isset($params['errcode'])) {
    $params = array(
      'errcode'  => '-100',
      'errmsg'  => '公眾號服務出錯,請聯系管理員',
    );
  }
}
return $params;

希望本文所述對大家PHP程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 扒开双腿疯狂进出爽爽动态图 | 精品午夜久久福利大片免费 | 国产精品一区二区不卡的视频 | 91看片淫黄大片欧美看国产片 | 久久久久久免费高清电影 | 国产伦精品一区二区三区免费迷 | 天天综合天天影视色香欲俱全 | 吻戏辣妞范1000免费体验 | 爱情岛永久成人免费网站 | 福利片福利一区二区三区 | 欧美三茎同入 | 高h辣h双处全是肉军婚 | 99视频在线国产 | 娇妻被健身教练挺进小说阅读 | 性鸥美| chinese圣水黄金调教 | 1024免费观看完整版在线播放 | 色戒西瓜| 1024亚洲精品国产 | 99超级碰碰成人香蕉网 | 日本大尺度激情做爰叫床 | 国产美女亚洲精品久久久久久 | 欧美作爱福利免费观看视频 | sss亚洲国产欧美一区二区 | 男男同志videos | 羞羞麻豆国产精品1区2区3区 | 娇小8一12xxxx第一次 | 国产精品久久久久久久久免费观看 | 无码精品AV久久久奶水 | 男女性潮高片无遮挡禁18 | 日本亚欧乱色视频在线观看 | 99精品国产在现线免费 | 69短视频 | 免费看a片毛片 | 午夜性爽视频男人的天堂在线 | 男生操女生漫画 | 国产成人99精品免费观看 | 免费a漫 - 禁密天堂 | 日本春菜花在线中文字幕 | 免费日本在线 | 日韩精品成人 |