Для множественных полей вот так, что касается $files его нужно формировать с ключами, ключ это VALUE_ID => VALUE
Все файлы которые были удалены сохраняются в $_REQUEST['PROPERTY_del'] или PROP_deal
$arResult['html'] = \Bitrix\Main\UI\FileInput::createInstance([
"name" => 'PROPERTY['.$idProp.'][#IND#]', //[#IND#] - множественное поле ! индекс важен, так как в php шаблоне эта метка будет заменяться
"description" => true,
"upload" => true,
"allowUpload" => "I",
"medialib" => true,
"fileDialog" => true,
"cloud" => true,
"delete" => true,
//"maxCount" => 10,
])->show($files); //files ['VALUE_ID']=>value
// template.php
echo arResult['html'];
// post
Идет обработка файлы могут перемещаться, удаляться, добавляться. Важно сформировать массив в нужной последовательности
Использовать CIBlock::makeFilePropArray для значений, для удаления файло нужно будет добавить 'del' => 'Y'
Для одной картинки все проще, выше уже скинули, код для PREVIEW_TEXT и DETAIL_TEXT, если не существует класс \Bitrix\Main\UI\FileInput будет использоваться CFileInput::Show
Все файлы которые были удалены сохраняются в $_REQUEST['PROPERTY_del'] или PROP_deal
$arResult['html'] = \Bitrix\Main\UI\FileInput::createInstance([
"name" => 'PROPERTY['.$idProp.'][#IND#]', //[#IND#] - множественное поле ! индекс важен, так как в php шаблоне эта метка будет заменяться
"description" => true,
"upload" => true,
"allowUpload" => "I",
"medialib" => true,
"fileDialog" => true,
"cloud" => true,
"delete" => true,
//"maxCount" => 10,
])->show($files); //files ['VALUE_ID']=>value
// template.php
echo arResult['html'];
// post
Идет обработка файлы могут перемещаться, удаляться, добавляться. Важно сформировать массив в нужной последовательности
Использовать CIBlock::makeFilePropArray для значений, для удаления файло нужно будет добавить 'del' => 'Y'
Для одной картинки все проще, выше уже скинули, код для PREVIEW_TEXT и DETAIL_TEXT, если не существует класс \Bitrix\Main\UI\FileInput будет использоваться CFileInput::Show