我正在尝试使用cURL将文件发送到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);
不幸的是,我似乎无法在另一方获取$ data,而不是$ this->数据或我能想到的任何其他方式。我在这做错了什么?谢谢!
答案 0 :(得分:0)
试试这个。
$data = array('data' =>
array( 'contents' => '@'.$file_path)
);
如果这导致$ this->数据中的内容,请告诉我......它应该。
变量'data'变为$ this-> CakePHP中控制器中的数据。
答案 1 :(得分:0)
我推荐,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"
而无需连接
使用'manual'提交检查http-sniffer传输的参数。
CakePHP中的Chek调试级别和php.ini中的错误报告
答案 2 :(得分:0)
令人讨厌(但也许并不令人惊讶)它似乎不是上面代码中的问题,而是指向localhost上的页面;我将蛋糕应用程序移动到另一个位置并且看到,$ this-> params ['form']存在且正确。如果有人知道在这种情况下可能导致cURL失败的原因,那么这个问题仍然可以有更好的答案......