landing.block.uploadfile
Загрузить и привязать изображение к блоку
Описание
Метод landing.block.uploadfile загружает изображение и привязывает его к указанному блоку.
В ответе метод возвращает идентификатор файла и ссылку на него в поле src. Само изображение метод в блок не подставляет. Это значит, что после загрузки файл уже есть, но в содержимом блока он еще не показан. Обычно для этого после landing.block.uploadfile вызывают landing.block.updatenodes.
Параметры
scope
string
необязательный
Внутренний скоуп лендингов. Он не связан с REST-скоупом landing в названии метода.
Значение scope должно соответствовать типу сайта (подробное описание)
block
integer
обязательный
Идентификатор блока, к которому нужно привязать изображение.
Метод принимает идентификатор любого существующего блока.
Идентификатор блока можно получить методом landing.block.getlist
Если изображение нужно добавить в черновик опубликованной страницы, используйте идентификатор блока из черновика. Обычно для этого вызывают landing.block.getlist с параметром params.edit_mode = 1
picture
string
обязательный
Изображение для загрузки.
Метод принимает только изображения. Поддерживаются два формата:
- URL изображения,
- массив
["имя_файла.png", "base64_контент"].
Для массива имя файла должно содержать расширение. Во втором элементе массива передавайте только содержимое Base64 без префикса data:image/...;base64,.
При сохранении имя файла может измениться. Кириллические буквы метод транслитерирует, а пробелы и круглые скобки заменяет на _.
Подробнее о подготовке Base64: Как загрузить файлы
ext
string
необязательный
Расширение файла для загрузки по URL, если его нельзя точно определить по адресу.
Параметр учитывается только для picture, переданного как URL. Укажите в нем расширение файла изображения.
Если параметр не передан, расширение определяется автоматически. Для массива picture расширение берется из имени файла
params
object
необязательный
Дополнительные параметры обработки изображения (подробное описание).
Если параметр не передан, изображение сохраняется без изменения размера
temp
boolean
необязательный
Если значение приводится к true, файл помечается как временный.
По умолчанию — false
Параметр params
width
integer
необязательный
Целевая ширина изображения в пикселях.
Изменение размера выполняется только если одновременно передан height
height
integer
необязательный
Целевая высота изображения в пикселях.
Изменение размера выполняется только если одновременно передан width
resize_type
integer
необязательный
Режим изменения размера.
Возможные значения:
0 — вписать изображение в указанные размеры с сохранением пропорций,
1 — изменить размер пропорционально по большей стороне,
2 — привести изображение к точным размерам, при необходимости обрезав его.
По умолчанию — 1. Параметр применяется только к растровым изображениям
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"block": 39556,
"picture": ["banner.png", "**base64_image_content**"],
"params": {
"width": 1200,
"height": 675
}
}' \
"https://**put.your-domain-here**/rest/**user_id**/**webhook_code**/landing.block.uploadfile.json"
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"block": 39556,
"picture": ["banner.png", "**base64_image_content**"],
"params": {
"width": 1200,
"height": 675
},
"auth": "**put_access_token_here**"
}' \
"https://**put.your-domain-here**/rest/landing.block.uploadfile.json"
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of the payload returned in result (match the "response handling" section of the page)
type UploadFileResult = {
id: number
src: string
}
try {
const response = await $b24.actions.v2.call.make<UploadFileResult>({
method: 'landing.block.uploadfile',
params: {
block: 39556,
picture: ['banner.png', '**base64_image_content**'],
params: {
width: 1200,
height: 675,
},
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info(result.id, result.src)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function uploadFile() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'landing.block.uploadfile',
params: {
block: 39556,
picture: ['banner.png', '**base64_image_content**'],
params: {
width: 1200,
height: 675,
},
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info(result.id, result.src)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', uploadFile)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.landing.block.uploadfile(
block=39556,
picture=[
"banner.png",
"**base64_image_content**",
],
params={
"width": 1200,
"height": 675,
},
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service
->core
->call(
'landing.block.uploadfile',
[
'block' => 39556,
'picture' => ['banner.png', '**base64_image_content**'],
'params' => [
'width' => 1200,
'height' => 675,
],
]
);
$result = $response
->getResponseData()
->getResult();
echo '<pre>';
print_r($result);
echo '</pre>';
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error uploading image: ' . $e->getMessage();
}
BX24.callMethod(
'landing.block.uploadfile',
{
block: 39556,
picture: ['banner.png', '**base64_image_content**'],
params: {
width: 1200,
height: 675
}
},
function(result)
{
if (result.error())
{
console.error(result.error());
}
else
{
console.info(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'landing.block.uploadfile',
[
'block' => 39556,
'picture' => ['banner.png', '**base64_image_content**'],
'params' => [
'width' => 1200,
'height' => 675,
],
]
);
echo '<pre>';
print_r($result);
echo '</pre>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "landing.block.uploadfile", b24.Params{
"block": 39556,
"picture": []string{"banner.png", "**base64_image_content**"},
"params": b24.Params{
"width": 1200,
"height": 675,
},
})
if err != nil {
return fmt.Errorf("landing.block.uploadfile: %w", err)
}
var item struct {
ID b24.ID `json:"id"`
Src string `json:"src"`
}
if err := json.Unmarshal(res.Result, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.ID, item.Src)
Ответ
HTTP-статус: 200
{
"result": {
"id": 33873,
"src": "https://cdn-ru.bitrix24.ru/b13743910/landing/fda/fda6c41d4b2b4f4d672601bd48c6aff1/nature.jpg"
},
"time": {
"start": 1774523909,
"finish": 1774523910.101491,
"duration": 1.1014909744262695,
"processing": 1,
"date_start": "2026-03-26T14:18:29+03:00",
"date_finish": "2026-03-26T14:18:30+03:00",
"operating_reset_at": 1774524509,
"operating": 0.30655694007873535
}
}
Возвращаемые данные
result
object
Данные загруженного файла (подробное описание)
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "FILE_ERROR",
"error_description": "Ошибка загрузки файла. Возможно, файл не является графическим."
}
| Код | Описание | Значение |
|---|---|---|
MISSING_PARAMS |
Не передан обязательный параметр block или picture |
|
BLOCK_NOT_FOUND |
Блок с идентификатором block не найден или недоступен. Ошибка также возвращается, если по этому идентификатору нельзя определить страницу |
|
FILE_ERROR |
Не удалось загрузить изображение. Ошибка возвращается, если файл не скачался по URL, не прочитался из Base64, не прошел проверку как изображение, SVG не разрешен на портале или файл не удалось сохранить |

