Добавление вложения (файлов) в запрос через json


#1

Всем доброго времени суток, у нас версия 2.2
Читаю док, но нет примеров https://wiki.openitop.org/doku.php?id=2_2_0:advancedtopics:rest_json

У меня есть например добавление комментария.

   $update_data = json_encode(array(
    'operation' => 'core/update',
   'comment' => "Студент $USER->lastname $USER->firstname $USER->middlename оставил комментарий",
   'class' => 'Incident',
   'key' => $ticket,
   'output_fields' => 'public_log',
   'fields' => array(
	'public_log' => $comment
   )    
));

Можете подсказать как по аналогии добавить вложение?


#2

Понял, норм форум)


#3

@supermen666333, чую сарказм) Прости, но никто тут никому ничего не обещал. Если знаешь другие форумы по iTop, где можно быстро получить решение нетривиальной задачи, можешь поделиться ссылкой тут.

А вложения добавляются точно также, как и все остальное. Конкретные названия полей можно посмотреть в Модели данных (Инструменты администратора => Модель данных => Attachment). Сам контент нужно лить в base64 (емнип).


#4

Возможно кому то пригодится:
$upload_files - массив из путей к файлам
$name_files - массив имен файлов

$file_contents = file_get_contents($upload_files[$a]);
$update_data_file = json_encode(
    array(
        'operation' => 'core/create',
        'comment' => 'Automatic creation of attachment',
        'class' => 'Attachment',
        'output_fields' => '*',
        'fields' => array(
            'item_class' => 'Incident',
            'item_id' => $ticket,
            'contents' => array(
                'data' => base64_encode($file_contents),
                'filename' => $name_files[$a],
                'mimetype' => mime_content_type($upload_files[$a])
            )
        )
    )