[Решено] API. Как добавлять файлы в поле "Вложения"?
[Решено] API. Как добавлять файлы в поле "Вложения"?
Задача добавлять файлы к записям в поле "Вложения".
Возможно ли это? В документации не нашёл этой возможности.
Возможно ли это? В документации не нашёл этой возможности.
Последний раз редактировалось tehnos 10 июн 2024, 12:00, всего редактировалось 1 раз.
- support
- Техническая поддержка
- Сообщения: 9177
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: API. Как добавлять файлы в поле "Вложения"?
Добавил инфу в документацию https://docs.rukovoditel.net.ru/index.php?p=159
Re: API. Как добавлять файлы в поле "Вложения"?
Работает, но есть нюанс.
При добавлении файла, предыдущий удаляется.
Можно ли добавлять файлы без удаления ранее прикреплённых?
При добавлении файла, предыдущий удаляется.
Можно ли добавлять файлы без удаления ранее прикреплённых?
- support
- Техническая поддержка
- Сообщения: 9177
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: API. Как добавлять файлы в поле "Вложения"?
Добавил информацию в документацию https://docs.rukovoditel.net.ru/index.p ... e_vlozenij
Re: API. Как добавлять файлы в поле "Вложения"?
Спасибо!
Однако видимо есть ещё баг.
При попытке передать массив файлов $files, PHP сообщает об ошибке:
Если переменная $files является строкой (например, ссылка на файл) - всё работает.
Однако видимо есть ещё баг.
При попытке передать массив файлов $files, PHP сообщает об ошибке:
Код: Выделить всё
[Wed Jun 05 14:29:21.171605 2024] [php:error] [pid 60358] [client 192.168.1.2:50334] PHP Fatal error: Uncaught TypeError: strlen(): Argument #1 ($string) must be of type string, array given in /var/www/oms/plugins/ext/classes/api/api.php:1072
Stack trace:
#0 /var/www/oms/plugins/ext/classes/api/api.php(75): api->action_update()
#1 /var/www/oms/api/rest.php(58): api->request()
#2 {main}
thrown in /var/www/oms/plugins/ext/classes/api/api.php on line 1072
- support
- Техническая поддержка
- Сообщения: 9177
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: API. Как добавлять файлы в поле "Вложения"?
А покажите ваш код.
Re: API. Как добавлять файлы в поле "Вложения"?
field_727 - тип поля "Вложения"
Код: Выделить всё
// смотрим уже добавленные вложения
$query = array(
'entity_id' => 27,
'select_fields' => '727',
'filters' => array('id' => (string) $id)
);
$result = oms('select', $query);
// записываем имена файлов (вложений) в массив (если они есть)
$files = [];
if(!empty($result['data'][0]['727'])) {
foreach(explode(',', $result['data'][0]['727']) AS $filename) {
$files[] = ['name' => $filename];
}
}
// добавляем новый файл к ранее созданному массиву файлов
$files[] = [
'name' => $file_name,
'content' => base64_encode(file_get_contents($file_link))
];
// отправляем вложения в запись
$query = array(
'entity_id' => 27,
'data' => array('field_727' => $files),
'update_by_field' => array('id' => (string) $id)
);
$result = oms('update', $query);
- support
- Техническая поддержка
- Сообщения: 9177
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: API. Как добавлять файлы в поле "Вложения"?
А версия программы какая?
Re: API. Как добавлять файлы в поле "Вложения"?
Я кажется понимаю где у меня ошибка.
Разбираю. Напишу о результате.
Разбираю. Напишу о результате.