2013-12-08 2 views
1

터미널에서 제대로 작동하는 컬 스크립트가 있습니다. 내 PHP 파일에서이 방법을 시도php : curl 스크립트가 작동하지만 php 파일에 없습니다.

curl -XPOST \ 
    -F "[email protected]/www/myfile.wav;type=audio/wav" \ 
    -H 'Authorization: Bearer $MY_TOKEN' \ 
    'https://myurl' 

,

<?php 

    $url = "https://myurl"; 
    $key = "myKey"; 

    $path = "/var/www/"; 
    $fileName = "myfile.wav"; 
    $data['file']= "@".$path.$fileName; 
    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_POST, true); 

    curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_HTTPHEADER,array("Authorization: Bearer $key")); 

    $response = curl_exec($ch); 

    curl_close($ch); 

    echo $response; 

?> 

나는 서버에서 오류가 발생합니다. 서버가 기대하는대로 요청하지 않는 것 같습니다. PHP 스크립트에서 무엇인가 놓치고 있습니까? 그것은이 HTTPS URL이기 때문에

답변

0

는, 당신은

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
+0

이 작동하지 않습니다 ... 사실 POST로 다음

<?php $url = "https://myurl/"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); header("Content-Type: text/plain"); echo $response; ?> 

및 :( –

+0

:

거짓 POST이 처음으로 PHP에서 CURL을 사용하여 간단한 일련의 테스트를 시도 어떤 오류가 발생합니까? '작동하지 않습니다.'라는 질문에 대한 답변은 도움이되지 않습니다. –

+0

서버가 방금 "오류 발생"오류를 반환하고 있습니다. curl 스크립트를 실행하면 서버가 올바르게 반환됩니다. –

1

이 시도이 매개 변수의 사용을해야합니다.

$ 데이터 = 배열 ​​('파일'=> file_get_contents를 ($ 경로 $ 파일 이름));

PHP가 사용중인 CURL 라이브러리에 문제가있을 수 있습니다.

또는 PHP가 HTTPS 연결을 차단할 수 있습니다.

<?php 

    $url = "https://myurl/"; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_POST, false); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $response = curl_exec($ch); 
    curl_close($ch); 
    header("Content-Type: text/plain"); 
    echo $response; 
?> 
+0

. 행운을 빌어 요 : ( –

+0

@Rifat 컬 라이브러리에 버그가있을 수도 있습니다. 터미널과 PHP 스크립트에는 아무런 차이가없는 것 같습니다. –

+0

@Rifat 업데이트 된 테스트를 시도하십시오 ... –