国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

服務(wù)器之家 - 編程語言 - PHP教程 - PHP實現(xiàn)通過CURL上傳文件功能示例

PHP實現(xiàn)通過CURL上傳文件功能示例

2019-09-30 17:00blueel PHP教程

這篇文章主要介紹了PHP實現(xiàn)通過CURL上傳文件功能,結(jié)合實例形式分析了php使用curl文件上傳操作相關(guān)屬性設(shè)置與使用技巧,需要的朋友可以參考下

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

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

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

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

this is a file for test
hello PythonTab!

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

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

為了展示服務(wù)端收到上述代碼的文件上傳請求的邏輯,我們在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']所指文件的內(nèi)容,并輸出到標準輸出,然后把$_FILES['upload']['tmp_name']所指文件自制到當(dāng)前目錄的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數(shù)組,對應(yīng)到上傳文件描述信息,其中name和type分別表示名稱和類型。tmp_name比較關(guān)鍵,服務(wù)端在接收到上傳文件之后,會把文件寫在一個臨時文件中,這個臨時文件的名字就是tmp_name的值,這也是為什么我們讀取該文件可以獲取一log.txt的文件內(nèi)容。一般在服務(wù)端接收到上傳文件后都需要立即讀取該文件或者把文件復(fù)制到別外一個文件中,因為tmp_name所指的臨時文件在服務(wù)端腳本執(zhí)行完畢后會被刪除掉,upload.php腳本的最后一行就是把臨時文件復(fù)制到我們的目標文件中。希望本文所述對大家PHP程序設(shè)計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲视频在线免费观看 | 国产亚洲精品久久19p | 91在线高清 | 激情一级片 | 天天操天天插 | 日本看片网站 | 精品国产欧美一区二区 | 欧美精品一区二 | 一区二区三区免费 | 欧美 亚洲 另类 激情 另类 | 久久久91精品国产一区二区三区 | 久久天天 | 欧美精品一区二区在线观看 | 插插射啊爱视频日a级 | 色噜噜狠狠狠综合曰曰曰88av | 久久久久久久久久久精 | 夜夜爽99久久国产综合精品女不卡 | 最近的中文字幕在线看视频 | 欧美在线观看禁18 | 久久精品视频网站 | www.久久久 | 最新国产精品 | 欧美精品久久 | 久久久国产精品免费观看 | 亚洲一区中文字幕 | 日本久久综合 | 国产免费高清 | 国产一区二区三区在线观看网站 | 国产综合中文字幕 | 老司机福利在线视频 | 国产黄色片免费观看 | 黄色一级大片在线免费看产 | 日本一区二区高清不卡 | 亚洲国产高清高潮精品美女 | 精品日韩 | 日韩一区二区在线观看 | 国产一区二区三区视频 | 国产精品美女久久久久久久久久久 | 日本高清视频在线播放 | 亚洲日本中文字幕 | 婷婷综合网 |