校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > PHP實現通過CURL上傳文件功能示例

PHP實現通過CURL上傳文件功能示例

熱門標簽:拉薩打電話機器人 沈陽人工智能電銷機器人公司 電銷機器人-快迭智能 h5 地圖標注 高識別電銷機器人 合肥外呼系統app 寶安400電話辦理 哈爾濱400電話辦理到易號網 智能外呼電銷系統

本文實例講述了PHP實現通過CURL上傳文件功能。分享給大家供大家參考,具體如下:

PHP使用CURL上傳文件只需發送一個POST請求就可以了,在請求中設置某個字段為需要上傳的文件全路徑,并且以"@"開頭,然后使用CURL把該變量以POST方式發送到服務器,在服務端即可以從超級全局變量$_FILES中取到相應的上傳文件信息。

下面我們以一個例子來展示這個過程。

假設本地有一個文本文件log.txt,其路徑為"/www/test/log.txt",內容如下:

this is a file for test
hello PythonTab!

為了把這個文件上傳給服務端的腳本http://yourwebname.com/upload.php,我們在本地寫了一個名為curl_file.php的腳本,內容如下:

?php
$url = "http://yourwebname.com/upload.php";
$post_data = array(
"foo" => "bar",
//要上傳的本地文件地址
"upload" = > "@/www/test/log.txt"
);
$ch = curl_init();
curl_setopt($ch , CURLOPT_URL , $url);
curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch , CURLOPT_POST, 1);
curl_setopt($ch , CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
?>

curl_file.php的邏輯很簡單,設置POST變量$post_data,其中upload指向需要發送的文件。這里要注意,我們之前使用POST都是發送一個字符串,然后在服務器端使用file_get_contents("php//input")來獲取該字符串,和這里的用法不一樣,其實POST也可以像GET一樣,發送鍵值對。在服務端有一個超級全局變量$_POST可以像$_GET一樣,獲取相應的POST數據的值。需要注意的是,上傳文件的變量不是存在著$_POST中,而是在$_FILES中。

為了展示服務端收到上述代碼的文件上傳請求的邏輯,我們在upload.php中寫了以下代碼:

?php
echo var_export($_FILES,true);
echo file_get_contents($_FILES['upload']['tmp_name']);
copy($_FILES['upload']['tmp_name'], "./log_copy.txt");
?>

upload.php首先使用var_export$_FILES變量輸出到標準輸出,然后使用file_get_contents讀取$_FILES['upload']['tmp_name']所指文件的內容,并輸出到標準輸出,然后把$_FILES['upload']['tmp_name']所指文件自制到當前目錄的log_copy.txt文件中。該腳本的標準輸出如下:

array(
'upload' =>
array(
'name' => 'log.txt',
'type' => 'application/octet-stream',
'tmp_name' => '/tmp/phpLUB59F',
'error' => 0,
'size' => 36,
)
)
this is a file for test
hello PythonTab!

可以看到$_FILES變量中有一個upload數組,對應到上傳文件描述信息,其中name和type分別表示名稱和類型。tmp_name比較關鍵,服務端在接收到上傳文件之后,會把文件寫在一個臨時文件中,這個臨時文件的名字就是tmp_name的值,這也是為什么我們讀取該文件可以獲取一log.txt的文件內容。一般在服務端接收到上傳文件后都需要立即讀取該文件或者把文件復制到別外一個文件中,因為tmp_name所指的臨時文件在服務端腳本執行完畢后會被刪除掉,upload.php腳本的最后一行就是把臨時文件復制到我們的目標文件中。

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php curl用法總結》、《PHP網絡編程技巧總結》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》及《PHP運算與運算符用法總結》

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

您可能感興趣的文章:
  • ThinkPHP5+UEditor圖片上傳到阿里云對象存儲OSS功能示例
  • Thinkphp整合阿里云OSS圖片上傳實例代碼
  • ThinkPHP 3使用OSS的方法
  • thinkPHP簡單導入和使用阿里云OSSsdk的方法
  • php版阿里云OSS圖片上傳類詳解
  • php下通過curl抓取yahoo boss 搜索結果的實現代碼
  • php使用curl模擬瀏覽器表單上傳文件或者圖片的方法
  • php中上傳文件的的解決方案
  • PHP上傳文件及圖片到七牛的方法
  • PHP+Ajax實現上傳文件進度條動態顯示進度功能
  • php實現表單提交上傳文件功能
  • 詳解PHP使用OSS上傳文件

標簽:威海 梅州 山東 張家口 林芝 泰州 成都 巴中

巨人網絡通訊聲明:本文標題《PHP實現通過CURL上傳文件功能示例》,本文關鍵詞  PHP,實現,通過,CURL,上傳,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP實現通過CURL上傳文件功能示例》相關的同類信息!
  • 本頁收集關于PHP實現通過CURL上傳文件功能示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 奈曼旗| 梁山县| 湖北省| 四平市| 宜兰市| 安陆市| 榆林市| 株洲县| 神农架林区| 北票市| 明星| 葵青区| 夏河县| 平陆县| 天全县| 玉山县| 文成县| 布拖县| 额尔古纳市| 铜梁县| 沙洋县| 旺苍县| 隆安县| 台湾省| 宝山区| 茂名市| 阿勒泰市| 陆河县| 盐津县| 德钦县| 灵山县| 五家渠市| 潢川县| 共和县| 峨眉山市| 门源| 雷州市| 沂源县| 保德县| 巩留县| 松潘县|