91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在PHP中利用CURL上傳文件

發布時間:2021-04-07 17:44:07 來源:億速云 閱讀:268 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關怎么在PHP中利用CURL上傳文件,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

內容如下:

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中利用CURL上傳文件,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南部县| 门源| 安阳市| 阿拉善右旗| 林甸县| 于都县| 万安县| 平邑县| 二手房| 阿勒泰市| 江达县| 绥芬河市| 武川县| 江川县| 普陀区| 长寿区| 唐山市| 平原县| 平江县| 黎平县| 健康| 萝北县| 镇远县| 太白县| 北安市| 许昌县| 隆安县| 麻阳| 衢州市| 大洼县| 武强县| 汾西县| 井陉县| 临洮县| 洛扎县| 桑植县| 吉安县| 合阳县| 色达县| 庐江县| 盈江县|