CURL请求通过命令行工作,但在PHP中不起作用
下面的命令在命令行中运行良好CURL请求通过命令行工作,但在PHP中不起作用,php,curl,php-curl,Php,Curl,Php Curl,下面的命令在命令行中运行良好 curl -X POST "http://xxx.xx.xx.xx:xxxx/api/upload?id=123456" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "file=@a.pdf;type=application/pdf" 当我使用命令行点击上面的命令时,它会给出一个令牌作为
curl -X POST "http://xxx.xx.xx.xx:xxxx/api/upload?id=123456" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "file=@a.pdf;type=application/pdf"
当我使用命令行点击上面的命令时,它会给出一个令牌作为返回响应。如果我也通过邮递员进行调用,它可以正常工作。但当我通过请求时
PHP-CURL它既不给出任何错误也不给出任何标记作为响应
尝试向请求中添加内容类型:多部分/表单数据,如
CURLOPT_HTTPHEADER=>array'Content-Type:multipart/form data'使用正确的大小写:CURLFILE是否在php.ini中启用了curl扩展名?@DarkBee是的,我启用了curl扩展名。请参阅不确定文件路径中的第一个斜杠是什么,无论如何最好在windowns env中使用反斜杠,例如,新的CURLFILE'C:\Users\User\Downloads\C.pdf'
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://xxx.xx.xx.xx:xxxx/api/upload?id=123456",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => array('file'=> new CURLFILE('/C:/Users/User/Downloads/c.pdf')),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>