Документация для разработчиков

SaveForDB

bool
CFile::SaveForDB(
 array &Fields, 
 string field,
string SavePath
);

Метод предназначен для подготовки данных перед вставкой/обновлением записи в БД, содержащей ссылку на файл. Метод сохраняет файл на диск и возвращает во входном массиве ID сохраненного файла для последующей вставки/обновления записи в БД. Статический метод.

Примечание: до версии 7.1.0 аналогичные действия выполняли методы CDatabase::PrepareInsert и CDatabse::PrepareUpdate. Начиная с версии 7.1.0 действия по сохранению файлов и вставки записи в БД разнесены по разным методам.

Параметры

ПараметрОписание
arFields

Массив значений полей в формате "имя поля1"=>"значение1", "имя поля2"=>"значение2" [, ...].
При вставке файла, привязанного к записи, "значение" должно быть представлено в виде массива
Array(
"name" => "название файла",
"size" => "размер",
"tmp_name" => "временный путь на сервере",
"type" => "тип загружаемого файла",
  "del" => "флажок, удалить ли существующий файл (непустая строка)",  
"MODULE_ID" => "название модуля");

Массив такого вида может быть получен, например, объединением массивов $HTTP_POST_FILES[имя поля] и Array("del" => ${"имя поля"."_del"}, "MODULE_ID" = "название модуля");

Значение передается по ссылке.

fieldНазвание поля в массиве arFields, где содержится файл.
SavePathИмя папки (будет находится внутри папки upload) для хранения файлов.
До версии 12.0.8 параметр назывался dir.

Возвращаемое значение

True в случае удачи, false при неудаче. В значении элемента массива $arFields[$field] будет возвращен ID сохраненного файла из таблицы b_file. Если файл был удален, в этом поле будет возвращено false. При неудаче элемент массива $arFields[$field] будет удален (unset).

Примеры использования

<?
$arFields["ATTACH_IMG"] = $_FILE["ATTACH_IMG"];
$arFields["ATTACH_IMG"]["MODULE_ID"] = "blog";

CFile::SaveForDB($arFields, "ATTACH_IMG", "blog");
$arInsert = $DB->PrepareInsert("b_blog_post", $arFields);

?>


© «Битрикс», 2001-2020, «1С-Битрикс», 2020
Наверх