1

Загрузка ddd файла с помощью cURL

Topic: Загрузка ddd файла с помощью cURL

Добрый день!
Пробую с помощью curl отправить *.ddd файл в WialonLocal
кусок моего, кода

...
//подписываюсь на все события
//судя по док-ции можно и не подписываться
$response = $this->request('core/update_data_flags', array(
    'spec' => array(
        array(
            'type' => 'type',
                     'data' => 'avl_resource',
            'flags' =>   0x3FFFFFFFFFFFFFFF,
            'mode' => 0
        )
    )
));

$eventHash = 'uploadDDDFile'.rand(); // генерирую хэш события

$queryParams = array(
    'svc' => 'resource/upload_tacho_file',
    $this->sid_param => $this->_sid,    
);

// собственно отправка файла
$ch = curl_init($this->url_api.'?'.http_build_query($queryParams));
    curl_setopt_array($ch, array(
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_HEADER => 0,
        CURLOPT_POST => 1,
        //CURLOPT_VERBOSE => 1,
        CURLOPT_POSTFIELDS => array(
            'params' => json_encode(
                array(
                    'outputFlag' => 1,
                    'eventHash' => $eventHash
                )
            ),
            'eventHash' => $eventHash,
            'add-file-input' => new CurlFile($file)
        )));

$raw = curl_exec($ch); // возвращается строка '{}'
$info = curl_getinfo($ch);

if($info['http_code'] === 200)
{
    $this->_tm = time();
    $data = json_decode($raw, true);
        //print_r($data); //пустой массив
    $timeout = strtotime('+30 seconds', time());
    // смотрим события 
        while(time() < $timeout)
    {
        $events = $this->events(); // это метод обертка получения событий (http://{host}/avl_evts?sid=<text>)
        if(!empty($events['events']))
        {
            foreach($events['events'] as $event)
            {
                print_r($event); // события приходят, но нет нужного - $eventHash
                if(isset($event['d']['hash']) && $event['d']['hash'] == $eventHash)
                {
                    print_r($event['d']['hash']); // сюда не приходим
                    
                }
            }
            usleep(200000);
        }
    }
}
...

Нужного события в цикле не получаю ($eventHash). Файл отправляется, проверял с помощью отправки на свой хост. Этот же файл понимает TahoManager (т.е. читает заголовки, я его не загружал полностью). Использую корневую учетку со всеми правами. Ошибок в ответе не приходит, приходит пустой объект - '{}' (также и в TahoManager). Что делаю не так?

2

Загрузка ddd файла с помощью cURL

Re: Загрузка ddd файла с помощью cURL

Добрый день

Проблема детектирована и решена. Обновим в течение дня, отпишусь дополнительно

Cпасибо

3

Загрузка ddd файла с помощью cURL

Re: Загрузка ddd файла с помощью cURL

pavel-galant
Обновили, проверяйте

4

Загрузка ddd файла с помощью cURL

Re: Загрузка ddd файла с помощью cURL

Добрый вечер. К сожалению ничего не изменилось. Правда смущает что, после обновления в интерфейсе администратора выводит версию Wialon Local 1504 (build: 2016-03-02 12:06)

5

Загрузка ddd файла с помощью cURL

Re: Загрузка ddd файла с помощью cURL

pavel-galant
Немного ошибся с формулировкой.
Исправили для Hosting'a, для Local'а придётся подождать следующей недели.

6

Загрузка ddd файла с помощью cURL

(edited by pavel-galant 11/03/2016 10:42:36)

Re: Загрузка ddd файла с помощью cURL

Проверил на hosting-е событие приходит.
Спасибо. Ждем обновление для local...

7

Загрузка ddd файла с помощью cURL

Re: Загрузка ddd файла с помощью cURL

shmi
Добрый день. Когда ожидается обновление для Local?

8

Загрузка ddd файла с помощью cURL

Re: Загрузка ddd файла с помощью cURL

Добрый день
Обновление уже доступно
Проверьте, пожалуйста

9

Загрузка ddd файла с помощью cURL

Re: Загрузка ddd файла с помощью cURL

shmi
Спасибо! Все работает.