2011-11-17 85 views
0

我正在嘗試使用cURL將文件發送到CakePHP控制器進行保存。喜歡的東西:如何將文件傳遞給CakePHP控制器操作?

$file_path = "/full/path/to/file.wav"; 
$data = array(
    'contents' => '@'.$file_path 
); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'http://localhost/cakeapp/uploads/putItem'); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
$result = curl_exec($ch); 
curl_close($ch); 

不幸的是我似乎沒有能夠拿起$數據的另一面,而不是在$ this->數據或者我能想到的任何其他方式。我在這裏做錯了什麼?謝謝!

+0

「有沒有其他方式可以想到」include $ this-> params ['form' ]'?只是要確定。 – mensch

+0

$ this-> params ['form']目前是空的......我會繼續檢查菜鳥的錯誤,但它總是會是一些非常愚蠢的東西...... – thesunneversets

回答

0

令人討厭的是(但也許並不意外)它似乎不是上述代碼中的問題,而是指向localhost上的頁面;我把蛋糕應用程序移動到另一個位置,看看$ this-> params ['form']是否存在並且是正確的。如果有人知道在這種情況下可能會導致cURL失敗,那麼這個問題仍然可以有更好的答案...

0

試試這個。

$data = array('data' => 
    array('contents' => '@'.$file_path) 
); 

讓我知道如果這導致在$ this->數據的內容...它應該。

在CakePHP控制器中,變量'data'變成$ this->數據。

+0

這是一個很好的想法 - 在實踐中我不是在curl_setopt($ ch,CURLOPT_POSTFIELDS,$ data)中獲取數組到字符串轉換錯誤;線?儘管如此,我會嘗試遵循這一問題的一段時間...... – thesunneversets

0

我advace,istead http://localhost/cakeapp/uploads/putItem使用:

$url = Router::url(
    array(
     'controller' => 'controller', 
     'action'  => 'action', 
     param_if_needed1, 
     param_if_needed2 
    ), 
    true //absolute, false (default) - relative 
); 

也儘量"@/full/path/to/file.wav"無連接

檢查與http-sniffer轉移參數 '手動' 提交。
CakePHP中的Chek調試級別和php.ini中的錯誤報告

相關問題