Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 卷曲文件停止卷曲工作,卷曲错误43_Php_Curl_Post - Fatal编程技术网

Php 卷曲文件停止卷曲工作,卷曲错误43

Php 卷曲文件停止卷曲工作,卷曲错误43,php,curl,post,Php,Curl,Post,我有一个表单上传一张票到票务系统,我需要用户能够传递附件。一旦我在帖子中添加了一个CURL文件,CURL似乎就停止工作了。我在接收文件中添加了error_logfoo,但没有记录任何内容,这表明请求甚至没有发送 我的代码是: $data = new CURLFile( $_FILES['attachment']['tmp_name'][0], $_FILES['attachment']['type'][0], $_FILES['attachment']['name'][0

我有一个表单上传一张票到票务系统,我需要用户能够传递附件。一旦我在帖子中添加了一个CURL文件,CURL似乎就停止工作了。我在接收文件中添加了error_logfoo,但没有记录任何内容,这表明请求甚至没有发送

我的代码是:

$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);
变量转储输出:boolfalse

无输出:43

旋度误差不会产生任何结果

CURLOPT_详细和错误$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

对于将来遇到此错误的任何人来说,权限就是问题所在。我添加了一个脚本,将文件保存到一个文件夹中,而不是上传时的临时文件夹,然后对保存的文件运行上面的代码,结果成功了。

调试时,使用var_dump,而不是echo。调试curl时,还要使用CURLOPT_VERBOSE和curl_errno以及curl_error。修复这些问题,获得var_dump、CURLOPT_VERBOSE和error$ch的结果,然后返回hi@hanshenrik,完成了,请参阅修改后的答案嗯,有趣的是,43是CURLE_BAD_FUNCTION_参数:内部错误。使用错误的参数调用了函数。-将错误检测添加到curl_setopt中,如函数ecurl_setopt$ch,int$option,$value:bool{$ret=curl_setopt$ch,$option,$value;if!$ret{throw new RuntimeException'curl_setopt failed.errno:'.curl_errno$ch'。错误:'.curl_error$ch;}返回true;},并使用它代替curl_setopt,看看它是否在我运行过你的代码的某个地方失败,而他们似乎都没有抛出异常。这非常令人困惑。如果我删除'some_file'=>$数据,并用some_value=>1替换它,则会建立连接。我想知道权限问题是否会发生在某个地方。