Как мне перебросить файл в действие контроллера CakePHP? - PullRequest
0 голосов
/ 17 ноября 2011

Я пытаюсь отправить файл на контроллер CakePHP, используя cURL для сохранения.Что-то вроде:

$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-> data или каким-либо другим способом, о котором я могу думать.Что я здесь не так делаю?Спасибо!

Ответы [ 3 ]

0 голосов
/ 17 ноября 2011

Я продвигаюсь, 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 и создание отчетов об ошибках в php.ini

0 голосов
/ 17 ноября 2011

Досадно (но, возможно, неудивительно), что это не проблема в приведенном выше коде, а указание на страницу на localhost; Я переместил приложение для торта в другое место, и вот, $ this-> params ['form'] присутствовало и было правильным. Тем не менее, можно было бы найти лучший ответ на этот вопрос, если бы кто-нибудь знал, что может привести к сбою cURL в таких обстоятельствах ...

0 голосов
/ 17 ноября 2011

Попробуйте это.

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

Дайте мне знать, если это приведет к содержанию в $ this-> data ... Должно.

post-переменная 'data' становится $ this-> data в контроллере в CakePHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...