Примеры сохранения файла в 1С-Битрикс

20.08.2021

Несколько примеров сохранения файла в b_file

Пример когда мы сохраняем файл в БД по пути

// указываем путь файла на сервере
$filePath = $_SERVER['DOCUMENT_ROOT'] . "/upload/tmp/example.txt";
// или путь на сайте
$filePath = "https://www.example.com/upload/tmp/example.txt";

// готовим массив
$arFile = CFile::MakeFileArray($filePath);

$arFile["MODULE_ID"] = "main"; // добавляем нужный модуль
$arFile["description"] = "если надо тут можем добавить описание";

// сохраняем в таблице b_file

$fileId = CFile::SaveFile($arFile, "tmp/example"); // второй параметр это путь относительно /upload/

В итоге в переменной $fileId мы получаем IDшник нашего файла из таблицы и можем делать с ним что необходимо.

Еще пример когда мы создаем файл на лету без указания пути


$arFile["MODULE_ID"] = "main"; // модуль
$arFile["content"] = 'это содержание вашего файла, то что будет внутри :)';
$arFile["name"] = "имя_файла.расширение_файла";

$fileId = CFile::SaveFile($arFile, "tmp/example"); // второй параметр это путь относительно /upload/

Далее можем привязать наш ID файла куда нам нужно, например к деталке элемента:

$el = new CIBlockElement; 

$arLoad = Array(
    "DETAIL_PICTURE" => $fileId,
    // хотя на самом деле можно и так указать
    // "DETAIL_PICTURE" => CFile::MakeFileArray("Путь до файла на сайте или сервере"),
);

$el->Update(ID_ЭЛЕМЕНТА, $arLoad); // сохраняемся

Возврат к списку