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

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-2019, «1С-Битрикс», 2019
Наверх