2011-11-17 57 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中的错误报告

相关问题