2017-01-18 8 views
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 
+1

デバッグ時には、echoではなくvar_dumpを使用してください。 curlをデバッグするときは、CURLOPT_VERBOSEとcurl_errno()とcurl_error()も使用してください。それらを修正し、var_dump、CURLOPT_VERBOSE、およびエラー($ ch)の両方の結果を取得して、 – hanshenrik

+0

に戻ってきて、こんにちは@hanshenrik、修正済みの回答を参照してください –

+0

興味深いことに、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

答えて

0

今後このエラーが発生した場合は、権限が問題となることが判明しました。私はスクリプトをアップロードして一時フォルダー以外のフォルダーにファイルを保存してから、上記のコードを上書きして保存しました。

関連する問題