CURLFile停止CURL工作,CURL错误43

时间:2017-01-18 15:50:37

标签: php curl post

我有一张表格可以将票证上传到票务系统,我需要用户能够传递附件。一旦我将CURLFile添加到POST,CURL似乎就会停止工作。我将" error_log(" foo")添加到接收文件中,没有记录任何内容,这表明该请求甚至无法发送。

我的CURL代码是:

$data = new CURLFile(
    $_FILES['attachment']['tmp_name'][0],
    $_FILES['attachment']['type'][0],
    $_FILES['attachment']['name'][0]
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://192.168.0.56/api-test/foo.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'some_file' => $data
]);
$response  = curl_exec($ch);

var_dump($response);

var_dump输出:bool(false)

curl_errno输出:43

curl_error什么都不产生

CURLOPT_VERBOSE和错误($ ch)输出:

* Hostname 192.168.0.56 was found in DNS cache
*   Trying 192.168.0.56...
* Connected to 192.168.0.56 (192.168.0.56) port 80 (#0)
* Connection #0 to host 192.168.0.56 left intact

1 个答案:

答案 0 :(得分:0)

对于将来遇到此错误的任何人来说,权限都是问题所在。我添加了一个脚本来将文件保存到一个文件夹(临时文件夹除了上传之外),然后针对保存的文件运行上面的代码,并且它有效。