2013-06-14 5 views
0

Codeigniter와 Phil의 REStful API를 사용하고 있습니다.Codeigniter REST 서버. Null 응답

서버에 전화를 걸 때 문제가 NULL 값을 반환합니다. 리턴되어야하는 값은 65000 길이의 blob입니다. 나는 BLOB의 길이 때문에 그것을 계산하지만, 나는이 문제를 해결하는 방법을 모른다. 여기

$resp = call('upload_api/upload/format/json/', array('uploaded_files' => $_FILES['upload'], 'file_details' => 'test')); 
echo '<pre>'; print_r($resp); 

public static function call($resource, $params, $method='get') 
{ 
    if (empty($params)) 
    { 
     $params = array(); 
    } 
    $headers = ''; 
    $url = self::API_URL . $resource; 
    $curlObj = curl_init(); 
    curl_setopt_array($curlObj, 
        array(
         CURLOPT_URL => $url, 
         CURLOPT_RETURNTRANSFER => true, 
         CURLOPT_TIMEOUT => 20 
        )); 
    switch ($method) 
    { 
     case 'get': 
      $query_str = http_build_query($params); 
      $url = $url .= '?' . $query_str; 
      curl_setopt($curlObj, CURLOPT_URL, $url); 
      break; 
     case 'put': 
      $headers[] = 'Content-Type: application/json'; 
      curl_setopt($curlObj, CURLOPT_HTTPHEADER, $headers); 
      curl_setopt($curlObj, CURLOPT_CUSTOMREQUEST, 'PUT'); 
      curl_setopt($curlObj, CURLOPT_POSTFIELDS, json_encode($params)); 
      break; 
     case 'post': 
      $headers[] = 'Content-Type: application/json'; 
      curl_setopt($curlObj, CURLOPT_HTTPHEADER, $headers); 
      curl_setopt($curlObj, CURLOPT_POST, true); 
      curl_setopt($curlObj, CURLOPT_POSTFIELDS, json_encode($params)); 
      break; 
     default: 
     // error message 
    } 

    $data = curl_exec($curlObj); 

    $contentType = curl_getinfo($curlObj, CURLINFO_CONTENT_TYPE); 
    switch ($contentType) 
    { 
     case 'application/json': 
      $data = json_decode($data, true); 
      break; 
    } 

    curl_close($curlObj); 

    return $data; 
} 

는 방법입니다 : 여기

내가 API를 호출하는 방법은

require APPPATH.'/libraries/REST_Controller.php'; 
class Upload_api extends REST_Controller { 

    public function upload_get() 
    { 

     $this->load->model('Upload_File'); 
     $upload_file = new Upload_File(); 
     $total_rows = $upload_file->count(); 
     $upload_file->get(1, 0)->all; 

     // file_content is a blob 
     $this->response(array('file' => $upload_file->file_content, 'total_rows' => $total_rows), 200); 

    } 

} 

답변

0

내가 솔루션의 완전히 확실하지 않다, 그러나 함께 REST 버그를 해결하려고 할 때 나는 이렇게 libary :

출력 할 수 있습니다 :

$ this-> response ($ _ SERVER);

$ this-> 응답 ($ _ POST);

등 모든 서버 변수를 볼 수 있으므로 응답 길이와 헤더를 확인할 수 있습니다.