萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php curl 上傳文件代碼實例

php curl 上傳文件代碼實例

   這篇文章主要介紹了php curl 上傳文件代碼實例,本文給出了兩種實現方法,並分別給出了實現代碼,需要的朋友可以參考下

  假設server端上傳文件處理腳本upload.php:

   代碼如下:

  

  print_r($_POST);

  print_r($_FILES);

  1、使用 CURL 默認的方法

  復制代碼 代碼如下:

  //如果php文件是utf8編碼,系統是GBK編碼,那麼就需要轉下編碼,要不然Php在系統中找不到這個文件

  $file = realpath(mb_convert_encoding('測試圖片.JPG','GBK','utf8'));

  $file = realpath('temp.jpg'); //要上傳的文件

  $fields['f'] = '@'.$file; // 前面加@符表示上傳圖片

  $ch =curl_init();

  curl_setopt($ch,CURLOPT_URL,'http://localhost/upload.php');

  curl_setopt($ch,CURLOPT_POST,true);

  curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);

  curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

  $content = curl_exec($ch);

  echo $content;

  2、另類的做法,有時我們需要將動態產生的內容當做文件上傳到遠程服務器,卻又不想在本地服務器中構建臨時文件。這樣就有了這個另類的寫法

  代碼如下:

  $contents =<<< 'TEXT'

  這裡是文件內容,也可以是圖片二進制,圖片需要修改上傳文件類型

  TEXT;

  $varname = 'my';//上傳到$_FILES數組中的 key

  $name = '3.txt';//文件名

  $type = 'text/plain';//文件類型

  $key = "$varname"; filename="$namernContent-Type: $typern";

  $fields[$key] = $contents;

  $ch =curl_init();

  curl_setopt($ch,CURLOPT_URL,'http://localhost/upload.php');

  curl_setopt($ch,CURLOPT_POST,true);

  curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);

  curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

  $content = curl_exec($ch);

  echo $content;

copyright © 萬盛學電腦網 all rights reserved