curl POST-F到php curl
我试图将一个本地文件发布到一个API,如果我使用命令行curl,它就可以工作,但当我尝试使用php curl时,它就不能工作。我为标题和正文设置了一些变量curl POST-F到php curl,php,curl,Php,Curl,我试图将一个本地文件发布到一个API,如果我使用命令行curl,它就可以工作,但当我尝试使用php curl时,它就不能工作。我为标题和正文设置了一些变量 $headers = array(); $headers[] = 'Authorization: Passcode '.$passcode; $headers[] = 'FileType: STD'; $api_url = 'https://url.com'; $field_json = json_encode($field).';type
$headers = array();
$headers[] = 'Authorization: Passcode '.$passcode;
$headers[] = 'FileType: STD';
$api_url = 'https://url.com';
$field_json = json_encode($field).';type=application/json'
$filepath = realpath('path/file.csv');
$file = new CURLFile($filepath,'text/csv');
如果我将它设置为字符串并使用exec,那么基于API规范的curl就可以工作
$cmd = "curl -X POST -H \"$headers[0]\" -H \"$headers[1]\" -F \"field=$field_json\" -F \"filename=@$filepath\" $api_url";
exec($cmd,$result); //This works successfully
但是,当我尝试使用以下PHP cURL代码发送帖子时,我得到了一个模糊的错误响应“意外错误”
$body = array(
'field' => $field_json,
'filename' => $file
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
//curl_setopt($ch, CURLOPT_SAFE_UPLOAD, FALSE);
$result = curl_exec($ch);
curl_close($ch);
echo json_encode($result);
我正在使用PHP5.5.9,并尝试使用旧的方法使用@和文件路径