Есть тут, кто нибудь, кто в программировании на Битрикс разбирается ? Я путаюсь написать файл обработчик, который отредактирует пользователя со стороннего ресурса. Проблемы с тем, как передать ему файл с фотографией пользователя. Код (Text): $file=file_get_contents("https://xxx/image.jpg"); $data="user.update?".http_build_query( [ "ID"=>"38", "PERSONAL_PHOTO"=>$file ] ); $ch = curl_init('https://xxx.bitrix24.ru/rest/1/xxx/'.$data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response=curl_exec($ch); curl_close($ch); var_dump($response); Выдает "414 Request-URI Too Large". Пробовал просто адрес изображения передать Код (Text): "PERSONAL_PHOTO=>"https://xxx/image.jpg" Он выдает "неверный тип файла". Как эту картинку правильно передать ?
Читал, что от "414 Request-URI Too Large" может помочь передача POST запроса вместо GET, А как её правильно организовать ? Вариант Код (Text): $file=file_get_contents("https://xxx/image.jpg"); $data="user.update?".http_build_query( [ "ID"=>"38", "PERSONAL_PHOTO"=>$file ] ); $ch = curl_init('https://xxx.bitrix24.ru/rest/1/xxx/'.$data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); $response=curl_exec($ch); curl_close($ch); var_dump($response); не помогает.
Нашел способ передачи, на который ошибка 414 не появляется. Код (Text): $file=base64_encode(file("https://xxx/image")); $data=http_build_query( [ "ID"=>"38", "PERSONAL_PHOTO"=>$file ] ); $ch = curl_init('https://xxx.bitrix24.ru/rest/1/xxx/user.update'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $response=curl_exec($ch); curl_close($ch); var_dump($response); Вот только при такой записи фото пользователя не меняется, а при Код (Text): $file=file("https://xxx/image"); Просто слетает уже имеющееся изображение. На попытку задать $file через file_get_contents что с шифрованием через base64 что без него реагирует как на неправильный тип файла. В каком виде задать "PERSONAL_PHOTO", чтобы этот запрос прошел ?