2012-06-23 95 views
0

我試圖讓文件向操作發出POST請求。該Web服務工作正常,但我無法檢索該文件「原樣」。 Cake自動將$ this-> request->數據轉換爲一個數組,這不是我所需要的。我需要將該文件保存到我的數據庫中的BLOB列中。使用POST請求在REST Web服務上接收文件

請幫幫我!!!

在此先感謝您的幫助!

這是我的控制器代碼,我在CakePHP的2.1.0:

class TransfersController extends AppController { 
public $name = 'Transfers'; 
public $components = array('RequestHandler'); 

public function record($rfc = null, $numop = null, $source = null) {   
    if ($this->request->is('post')) { 
     if (strlen($rfc) > 0) {    
      if ($numop > 0) { 
       $this->loadModel('Client'); 
       $client = $this->Client->findByRfc($rfc); 
       if (!empty($client)) { 
        if ($client['Client']['enabled'] == 1) { 
         // unknown way to get the received file       

         $this->Transfer->set('client_id', $client['Client']['id']);        
         $this->Transfer->set('num_operacion', $numop); 
         $this->Transfer->set('source', $source); 
         // $this->Transfer->set('xml', $this->request->data); 
         if ($this->Transfer->save($this->request->data)) { 
          //$message = 'Ok'; 
          $message = $data; 
         } else { 
          $message = 'No se pudo registrar la transmisión'; 
         } 
        } else { 
         $message = 'Su cuenta ha sido suspendida. Póngase en contacto con nostros para resolver éste inconveniente.'; 
        } 
       } else { 
        $message = 'El RFC ' . $rfc . ' no está registrado'; 
       } 
      } else { 
       $message = 'El número de operación no es válido'; 
      } 
     } else { 
      $message = 'El RFC no es válido'; 
     } 
    } else { 
     $message = 'La petición es inválida'; 
    } 
    $this->set('message', $message); 
} 
} 
+0

待辦事項你想將請求數組保存到數據庫中?你在做什麼 - 「我需要保存該文件..」?? –

+0

我想將文件保存爲二進制數據,而不是數組。操作「記錄」將允許通過Web服務將文件「上傳」到數據庫 – darkangel

回答

1

對於那些誰擁有了同樣的問題,我可以使用與接收到的文件工作:

$this->request->input();