我有一张表格可以将票证上传到票务系统,我需要用户能够传递附件。一旦我将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
答案 0 :(得分:0)
对于将来遇到此错误的任何人来说,权限都是问题所在。我添加了一个脚本来将文件保存到一个文件夹(临时文件夹除了上传之外),然后针对保存的文件运行上面的代码,并且它有效。