Работа с множественным свойством тип "Файл" в 1С Битрикс

Работа с множественным свойством тип "Файл" в 1С Битрикс

15.10.2022
1373
Примеры загрузки файлов в свойство, удаления файла и полной очистки свойства.

Загрузка файла в поле

Для загрузки файла в поле множественного свойства типа "Файл" необходимо выполнить следующие шаги:

// Получаем 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С Битрикс.