Страница 2 из 2

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

Добавлено: 05 июн 2024, 19:17
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.

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

Добавлено: 05 июн 2024, 20:53
support
Я сейчас в отъезде и проверить не смогу. Через 10 дней вернусь и проверю.

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

Добавлено: 05 июн 2024, 21:02
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 только по ссылке и может загрузить файл, так изначально и было

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

Добавлено: 05 июн 2024, 21:11
tehnos

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

Добавлено: 06 июн 2024, 10:08
support
Появилось время, сделал тест и функционал работает. В архиве рабочий пример.

Ошибки plugins/ext/classes/api/api.php:1072 в данной строке у меня нет. В файле строка вообще пустая. Похоже что у вас другая версия файла. Возможно он не обновился при обновлении или вы вносили изменения.

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

Добавлено: 06 июн 2024, 12:13
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
Чяднт?

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

Добавлено: 09 июн 2024, 18:37
support
Проблему обнаружил. Файл из архива замените в plugins\ext\classes\api\
Сообщите результат.

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

Добавлено: 10 июн 2024, 09:34
tehnos
СПАСИБО!!!
Всё заработало как надо.

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

Добавлено: 10 июн 2024, 16:39
tehnos
После обновления файла api.php появился баг.