Как загрузить файл через cURL в Kohana 3? - PullRequest
1 голос
/ 18 декабря 2011

Я пытаюсь

$request = Request::factory($url)->method(Request::POST)->post('xml', '@' . $filepath);
echo $request->execute();

, но print_r ($ _ FILES);в конечном сценарии возвращает пустой массив.

Версия Kohana - 3.2.0 стабильная

То, что я хочу, это простой аналог

$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0");
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('xml' => '@' . $filepath));
$res = curl_exec($ch);
echo $res;

Ответы [ 2 ]

0 голосов
/ 30 октября 2012

Теперь это можно сделать с помощью Kohana 3.3, используя метод Request # files ().

Редактировать: на самом деле это не является частью официального релиза, поэтому до 3.4 вы, вероятно, не сможете это сделать.

0 голосов
/ 18 декабря 2011

Попробуйте:

$request_url = 'your_url_here';
        $post_params['name'] = urlencode('Test User');
        $post_params['file'] = ‘@’.'demo/testfile.txt’;
        $post_params['submit'] = urlencode('submit');

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $request_url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_params);
        $result = curl_exec($ch);
        curl_close($ch);
...