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 출력 : 부울 (거짓)
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를 사용하십시오. 컬을 디버깅 할 때 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) ; ($ cur);} return (true);}'를 반환하고 대신에 그것을 사용합니다. curl_setopt 중 어딘가에 오류가 있는지 확인하십시오. – hanshenrik