0
チケットをチケットシステムにアップロードするフォームがあります。ユーザーに添付ファイルを渡す必要があります。 POSTにCURLFileを追加するとすぐに、CURLの動作が停止しているようです。私は、リクエストも送信しないことを示唆し、ログに記録された受信ファイルと何も「のerror_log(」foo "を)追加CURLFileは、CURLの動作を停止します。CURL Error 43
マイ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(偽)
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
デバッグ時には、echoではなくvar_dumpを使用してください。 curlをデバッグするときは、CURLOPT_VERBOSEとcurl_errno()とcurl_error()も使用してください。それらを修正し、var_dump、CURLOPT_VERBOSE、およびエラー($ ch)の両方の結果を取得して、 – hanshenrik
に戻ってきて、こんにちは@hanshenrik、修正済みの回答を参照してください –
興味深いことに、43は 'CURLE_BAD_FUNCTION_ARGUMENT:内部エラーです。 '' function ecurl_setopt($ ch、int $ option、$ value)のように、curl_setoptにエラー検出を追加してください:bool {$ ret = curl_setopt($ ch、$ option、$ value) ($ ch);}エラー: '.curl_error($ ch));} trueを返す;} 'それを代わりに使用するcurl_setoptの、どこかで失敗するかどうか確認してください。 – hanshenrik