php通过curl上传文件

接过 php 的 curl 发送数据代码示例。

特别注意的是下面的 file 路径,如果在 windows 环境下,在 realpath 后的路径前面加上@字符是可以正常发送的。如果在 linux 中是不能正常发送的。

正确的写法是 curl_file_create($fileurl)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$url = "http://192.168.1.22/api/Upload/index";
$fileurl = __ROOT__ . '/sn_cs1.csv';
import("Org.Util.File");
$fileObj = new \File($fileurl);
$fileurl = realpath($fileObj->getRealFile());//获取文件的实际物理路径
$post_data = array(
'token' => '88e780d49ff812c644c89ff31e5de196',
"file" => curl_file_create($fileurl),
);
$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);
print_r($output);