# changeportaldefaultheme.image.upload

Scope: changeportaldefaultheme

Кто может вызывать: Пользователь с правом записи на модуль для siteId (UserHelper::canConfigureBranding). Подробнее: Права доступа

Загрузить брендинговое изображение (логотип, фон, favicon) и привязать к ключу LESS

HTTP: POST (multipart/form-data)

Побочные эффекты: сохраняет файл в b_file, обновляет files в опциях темы, пересобирает LESS/CSS

Файл передаётся под именем file или под именем ключа (field). Параметр field — алиас key.

Параметры метода

Параметр Тип Обяз. Описание
siteId string нет ID сайта. По умолчанию — сайт по умолчанию
field string да Ключ привязки, напр. file-@client_logo. Алиас: key
file file да Файл изображения (jpg, jpeg, png, gif, svg; максимум 5 МБ)

Возвращаемые данные

Ответ в конверте модуля: result.result:

Поле Описание
fieldKey Ключ привязки
fileId ID файла в b_file
path Веб-путь к файлу

result.error.

Обработка ошибок

Справочник кодов ошибок.

Код Описание
UNAUTHORIZED Пользователь не авторизован
ACCESS_DENIED Нет права записи на модуль для сайта
SITE_NOT_FOUND Сайт с указанным siteId не найден
VALIDATION_ERROR Не передан файл или недопустимый fieldKey
INVALID_FILE_TYPE Недопустимый тип/содержимое файла
FILE_TOO_LARGE Файл больше 5 МБ
INTERNAL_ERROR Внутренняя ошибка сервера

Пример запроса (POST)

Прогон на портале 76593.dev.wehive.digital, пользователь вебхука 1, файл postman/sample-logo.png.

curl -X POST "https://{портал}/rest/{user_id}/{webhook_code}/changeportaldefaultheme.image.upload.json" \
          -H "Accept: application/json" \
          -F "siteId=s1" \
          -F "field=file-@client_logo" \
          -F "file=@sample-logo.png"
        

Пример ответа

{
          "result": {
            "result": {
              "fieldKey": "file-@client_logo",
              "fileId": 1218,
              "path": "/upload/ithive.changeportaldefaultheme/c57/drl9sta7bh4buprtkme6dua393xc3m47/vibe-test.png"
            },
            "error": null
          }
        }
        

Пример ответа (ошибка)

Запрос без файла:

{
          "result": {
            "result": null,
            "error": {
              "code": "VALIDATION_ERROR",
              "message": "Файл не передан.",
              "details": {
                "field": "file"
              }
            }
          }
        }
        

См. также

Предыдущая
Следующая