curl - 上传文件 ¶
作者:KK
发表日期:2017.7.9
要点速读 ¶
PHP5.5以前和以后的上传文件处理方式都不一样
主要通过设置POST数据为一个数组,数组的key就是文件的报文参数名称,数组的值就是文件路径或
CURLFile
文件对象
PHP5.5或以上 ¶
$url = 'http://localhost/upload.php'; //接收上传文件的地址
$postData = [
'up-file' => new CURLFile('@D:/test.txt') //重点1
];
$curlHandler = curl_init();
curl_setopt($curlHandler, CURLOPT_URL, $url);
curl_setopt($curlHandler, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlHandler, CURLOPT_POST, 1); //用POST方法请求
curl_setopt($curlHandler, CURLOPT_POSTFIELDS, $postData); //重点2
$result = curl_exec($curlHandler);
curl_close($curlHandler);
echo $result;
其中CURLFile是PHP5.5以后curl模块附加的一个类
接收端测试:
print_r($_FILES['up-file']);
PHP5.5以下 ¶
$url = 'http://localhost/upload.php'; //接收上传文件的地址
$postData = array(
'up-file' => '@D:/test.txt' //重点1,路径前要加@符号
);
$curlHandler = curl_init();
curl_setopt($curlHandler, CURLOPT_URL, $url);
curl_setopt($curlHandler, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlHandler, CURLOPT_POST, 1); //用POST方法请求
curl_setopt($curlHandler, CURLOPT_POSTFIELDS, $postData); //重点2
$result = curl_exec($curlHandler);
curl_close($curlHandler);
echo $result;
注意上传文件路径的字符串要以@
符号开始