[Решено] API. Как добавлять файлы в поле "Вложения"?

Все вопросы/проблемы по установке и использовании.
tehnos
Сообщения: 161
Зарегистрирован: 13 сен 2021, 17:10
Имя: Евгений
Откуда: Алушта

Re: API. Как добавлять файлы в поле "Вложения"?

Сообщение tehnos »

Нет, ошибку у себя всё же не выявил. Причесал код, теперь PHP ни на что не ругается.
Но тем не менее, вложения массивом не добавляются. Сервер вообще не возвращает никакого ответа (т.е. в $res = curl_exec($ch) абсолютно пусто).
Передаваемый массив ($files) выглядит хорошо (1 файл добавляю):

Код: Выделить всё

Array
(
    [0] => Array
        (
            [name] => file_6.jpg
            [content] => /9j/4AAQSkZJRgABAQEASABIAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAQDAwQDAwQEAwQFBAQFBgoHBgYGBg0JCggKDw0QEA8NDw4RExgUERIXEg4PFRwVFxkZGxsbEBQdHx0aHxgaGxr/2wBDAQQFBQYFBgwHBwwaEQ8RGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhr/wgARCAUAAtADASIAAhEBAxEB/8Q...  /* сократил */
        )

)
При этом, если в переменную $files вместо массива положить ссылку на файл - всё отрабатывает на отлично.

Версии: Руководитель 3.5.4, Дополнение 3.5.4.
Аватара пользователя
support
Техническая поддержка
Сообщения: 9177
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: API. Как добавлять файлы в поле "Вложения"?

Сообщение support »

Я сейчас в отъезде и проверить не смогу. Через 10 дней вернусь и проверю.
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 842
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: API. Как добавлять файлы в поле "Вложения"?

Сообщение Fait »

tehnos писал(а): 05 июн 2024, 19:17 Нет, ошибку у себя всё же не выявил. Причесал код, теперь PHP ни на что не ругается.
Но тем не менее, вложения массивом не добавляются. Сервер вообще не возвращает никакого ответа (т.е. в $res = curl_exec($ch) абсолютно пусто).
Передаваемый массив ($files) выглядит хорошо (1 файл добавляю):

Код: Выделить всё

Array
(
    [0] => Array
        (
            [name] => file_6.jpg
            [content] => /9j/4AAQSkZJRgABAQEASABIAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAQDAwQDAwQEAwQFBAQFBgoHBgYGBg0JCggKDw0QEA8NDw4RExgUERIXEg4PFRwVFxkZGxsbEBQdHx0aHxgaGxr/2wBDAQQFBQYFBgwHBwwaEQ8RGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhr/wgARCAUAAtADASIAAhEBAxEB/8Q...  /* сократил */
        )

)
При этом, если в переменную $files вместо массива положить ссылку на файл - всё отрабатывает на отлично.

Версии: Руководитель 3.5.4, Дополнение 3.5.4.
Ну так API только по ссылке и может загрузить файл, так изначально и было
tehnos
Сообщения: 161
Зарегистрирован: 13 сен 2021, 17:10
Имя: Евгений
Откуда: Алушта

Re: API. Как добавлять файлы в поле "Вложения"?

Сообщение tehnos »

Аватара пользователя
support
Техническая поддержка
Сообщения: 9177
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: API. Как добавлять файлы в поле "Вложения"?

Сообщение support »

Появилось время, сделал тест и функционал работает. В архиве рабочий пример.

Ошибки plugins/ext/classes/api/api.php:1072 в данной строке у меня нет. В файле строка вообще пустая. Похоже что у вас другая версия файла. Возможно он не обновился при обновлении или вы вносили изменения.
Вложения
insert.zip
(687 байт) 21 скачивание
tehnos
Сообщения: 161
Зарегистрирован: 13 сен 2021, 17:10
Имя: Евгений
Откуда: Алушта

Re: API. Как добавлять файлы в поле "Вложения"?

Сообщение tehnos »

1072 строка была в версии 3.5.3. После обновления до 3.5.4 - это уже 1078 строка.
Я совсем запутался. Я не понимаю Ваш пример, как система понимает номер записи куда я хочу вложения добавить? Там используется метод insert, а я добавляю вложения методом update (что логично - ведь я обновляю поле в уже созданной записи). В документации по вложениям всё очень скромно описано.
И вот когда я скармливаю ссылку на файл - добавляется без проблем, но при попытке скормить массив - получаю PHP Fatal error...

Код: Выделить всё

[Thu Jun 06 11:55:17.598663 2024] [php:error] [pid 88430] [client 192.168.1.2:45310] 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:1078
 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 1078
Чяднт?
Аватара пользователя
support
Техническая поддержка
Сообщения: 9177
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: API. Как добавлять файлы в поле "Вложения"?

Сообщение support »

Проблему обнаружил. Файл из архива замените в plugins\ext\classes\api\
Сообщите результат.
Вложения
api.zip
(10.5 КБ) 24 скачивания
tehnos
Сообщения: 161
Зарегистрирован: 13 сен 2021, 17:10
Имя: Евгений
Откуда: Алушта

Re: API. Как добавлять файлы в поле "Вложения"?

Сообщение tehnos »

СПАСИБО!!!
Всё заработало как надо.
tehnos
Сообщения: 161
Зарегистрирован: 13 сен 2021, 17:10
Имя: Евгений
Откуда: Алушта

Re: [Решено] API. Как добавлять файлы в поле "Вложения"?

Сообщение tehnos »

После обновления файла api.php появился баг.
Ответить