2014-11-09 7 views
0

로컬 드라이브에서 pdf 파일을 첨부하여 PHP CURL을 사용하여 API에 게시해야합니다. 여기Curl POST attachment

는 응답 아무것도 반환하지 않는 RingCentral FaxOut API Documentation

$url = "https://service.ringcentral.com/faxapi.asp"; 

$data = array(

    'Username' => 'XXXXXXXXX', 
    'Password' => 'XXXXXXXXX', 
    'Recipient' => 'XXXXXXXXXX|Navneet', 
    'Coverpage' => 'Default', 
    'Coverpagetext' => 'Testing Faxout API ', 
    'Resolution' => 'High', 
    "Sendtime" => date('d:m:y H:i:s'), 
    'Attachment' => file_get_contents(PATH_TO_FILE) 

); 

curl_setopt($ch,CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt($ch,CURLOPT_POST, count($data)); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $data); 

$result = curl_exec($ch); 

API입니다. 내 생각에, 나는 제대로 첨부 파일을 보내지 않을거야. 첨부 파일은 바이너리 스트림이어야합니다. 나는 base64_encode를 시도했지만 성공하지 못했다.

요청 본문의 예에 주어진, 첨부 파일에 대한 헤더 당신은 CURL과 API에 아무것도 게시 할 수 있습니다이

Content-Disposition: form-data; name="Attachment"; filename="C:\example.doc" 
<Document content is here> 
-----------------------------7d54b1fee05aa 
+0

코드를 지정하는 것이 더 좋았습니다. "API는 허용하지 않습니다. 좋은 설명이 아닙니다." – Milad

+0

이전 API를 사용하고 있습니다. 더 많은 지원이있는 새로운 [RingCentral API] (https://developers.ringcentral.com/)와 [PHP SDK] (https://github.com/ringcentral/ringcentral-php)를 사용해보십시오. – Grokify

답변

0

같이해야한다, 내 예 $doc 당신이 게시 할 아무것도, 그것은 할 수있다 json_encoded 파일, base64_encoded 이미지 또는 pdf 또는 다른 것.

$baseUri = https://service.ringcentral.com/faxapi.asp; 

$doc = file_get_contents(PATH_TO_FILE); 

$ci = curl_init(); 
curl_setopt($ci, CURLOPT_URL, $baseUri); 
curl_setopt($ci, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ci, CURLOPT_FORBID_REUSE, 0); 
curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'POST'); 
curl_setopt($ci, CURLOPT_POSTFIELDS, $doc); 

// also you can specify any specific header like this : 

$h1['Content-Disposition'] = 'Content-Disposition'. ': ' . 'form-data'; // headers are key-value pairs right ? 

curl_setopt($ci, CURLOPT_HTTPHEADER, array_values($h1)); // you can use this line for each header as a new key-value pair 

$h2['name'] = 'name'. ': ' . 'Attachment'; 
curl_setopt($ci, CURLOPT_HTTPHEADER, array_values($h2)); 
$h3['filename'] = 'filename'. ': ' . 'C:\example.doc'; 
curl_setopt($ci, CURLOPT_HTTPHEADER, array_values($h3)); 

$response = curl_exec($ci); 

** 참고 ** : 을 그래서 다른 PHP 파일 확인이보고 :

echo file_get_contents(PATH_TO_FILE); 

있는지 확인하여 file_get_contents 기능이 작동하는 경우는 좋은 아이디어는 우선 확인하기 올바르게 에코됩니다

+0

도움 주셔서 감사합니다. 위에 확인해주세요. –