php使用curl上传文件,代码如下:
发送的代码(完全是官方的示例)
<?php
/* http://localhost/upload.php:
print_r($_POST);print_r($_FILES);*/$ch = curl_init();
$data = array('name' => 'Foo', 'file' => '@/home/vagrant/test.png');
curl_setopt($ch, CURLOPT_URL, 'http://localhost/test/curl/load_file.php');
curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $data);curl_exec($ch);
?>接收代码(也是官方的)
<?php
print_r($_POST);print_r($_FILES);运行结果php -f demo.php
Array( [name] => Foo [file] => @/home/vagrant/test.png)Array()解决方法1:
<?php/* http://localhost/upload.php:
print_r($_POST);print_r($_FILES);*/$ch = curl_init();
$data = array('name' => 'Foo', 'file' => '@/home/vagrant/test.png');
curl_setopt($ch, CURLOPT_URL, 'http://localhost/test/curl/load_file.php');
curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);curl_setopt($ch, CURLOPT_POSTFIELDS, $data);curl_exec($ch);
?>解决方法2:
5.6版本下<?php/* http://localhost/upload.php:
print_r($_POST);print_r($_FILES);*/$ch = curl_init();
$data = array('name' => 'Foo', 'file' => new \CURLFile(realpath('/home/vagrant/test.png')));
curl_setopt($ch, CURLOPT_URL, 'http://localhost/test/curl/load_file.php');
curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);curl_setopt($ch, CURLOPT_POSTFIELDS, $data);curl_exec($ch);
?>
相关文章:
php curl文件上传兼容php5.0~5.6各版本