Загрузка файла в поле
Для загрузки файла в поле множественного свойства типа "Файл" необходимо выполнить следующие шаги:
// Получаем ID инфоблока и ID элемента
$iblockId = 1;
$elementId = 5;
// Получаем объект CIBlockElement
$el = new CIBlockElement;
// Собираем массив с данными для обновления элемента
$arFields = array(
"PROPERTY_VALUES" => array(
"FILE_FIELD" => array(
"n0" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/upload/myfile.jpg")
)
)
);
// Обновляем элемент инфоблока
$el->Update($elementId, $arFields);
Код выше загрузит файл "myfile.jpg" в поле "FILE_FIELD" элемента инфоблока с ID=5.
Загрузка файла в свойство, если там уже есть файлы
Чтобы загрузить файл в свойство, если там уже есть файлы, нужно выполнить следующие действия:
// Получаем ID инфоблока и ID элемента
$iblockId = 1;
$elementId = 5;
// Получаем массив со значениями свойств элемента
$arProps = CIBlockElement::GetProperty($iblockId, $elementId, array(), array("CODE"=>"FILE_FIELD"));
while ($arProp = $arProps->Fetch())
{
$arValues[] = $arProp["VALUE"];
}
// Добавляем новый файл в свойство
$arValues[] = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/upload/myfile.jpg");
// Обновляем свойство элемента
CIBlockElement::SetPropertyValuesEx($elementId, $iblockId, array("FILE_FIELD" => $arValues));
Код выше добавит файл "myfile.jpg" в свойство "FILE_FIELD" элемента инфоблока с ID=5, если там уже были загружены другие файлы.
Удаление файла
Если нужно удалить файл из свойства множественного свойства типа "Файл", нужно выполнить следующие действия:
// Получаем ID инфоблока, ID элемента и ID файла
$iblockId = 1;
$elementId = 5;
$fileId = 10;
// Удаляем файл из свойства
CIBlockElement::SetPropertyValueCode($elementId, "FILE_FIELD", array("del" => "Y", "VALUE" => array($fileId)));
Код выше удалит файл с ID=10 из свойства "FILE_FIELD" элемента инфоблока с ID=5.
Полная очистка свойства "Файл"
Если нужно полностью очистить свойство множественного свойства типа "Файл", нужно выполнить следующие действия:
// Получаем ID инфоблока и ID элемента
$iblockId = 1;
$elementId = 5;
// Удаляем все файлы из свойства
CIBlockElement::SetPropertyValueCode($elementId, "FILE_FIELD", array());
Код выше полностью очистит свойство "FILE_FIELD" элемента инфоблока с ID=5.
Заключение
Множественное свойство типа "Файл" - это удобный инструмент для работы с файлами в 1С Битрикс. С помощью приведенных примеров загрузки файла в поле, загрузки файла в свойство, удаления файла и полной очистки свойства, вы сможете эффективно использовать данную функцию. Если у вас возникнут какие-либо вопросы, обращайтесь к документации 1С Битрикс.