PHP使用CURL上传文件只需发送一个POST请求就可以了,在请求中设置某个字段为需要上传的文件全路径,并且以“@”开头,然后使用CURL把该变量以POST方式发送到服务器,在服务端即可以从超级全局变量$_FILES中取到相应的上传文件信息。
下面我们以一个例子来展示这个过程。
假设本地有一个文本文件log.txt,其路径为“/www/test/log.txt”,内容如下:
this is a file for test
hello PythonTab!
为了把这个文件上传给服务端的脚本http://bbs.pythontab.com/upload.php,我们在本地写了一个名为curl_file.php的脚本,内容如下:
//要上传的本地文件地址
"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;
?>
服务端直接从$_FILES[‘upload’][‘tmp_name’]读取文件