• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/file.php
  • Класс: CFile
  • Вызов: CFile::DoInsert
static function DoInsert($arFields)
{
	global $DB;

	$size = round(floatval($arFields["FILE_SIZE"]));

	$strSql =
		"INSERT INTO b_file(
			TIMESTAMP_X
			,MODULE_ID
			,HEIGHT
			,WIDTH
			,FILE_SIZE
			,CONTENT_TYPE
			,SUBDIR
			,FILE_NAME
			,ORIGINAL_NAME
			,DESCRIPTION
			,HANDLER_ID
			,EXTERNAL_ID
		) VALUES (
			".$DB->GetNowFunction()."
			,'".$DB->ForSQL($arFields["MODULE_ID"], 50)."'
			,".intval($arFields["HEIGHT"])."
			,".intval($arFields["WIDTH"])."
			,".$size."
			,'".$DB->ForSql($arFields["CONTENT_TYPE"], 255)."'
			,'".$DB->ForSql($arFields["SUBDIR"], 255)."'
			,'".$DB->ForSQL($arFields["FILE_NAME"], 255)."'
			,'".$DB->ForSql($arFields["ORIGINAL_NAME"], 255)."'
			,'".$DB->ForSQL($arFields["DESCRIPTION"], 255)."'
			,".($arFields["HANDLER_ID"]? "'".$DB->ForSql($arFields["HANDLER_ID"], 50)."'": "null")."
			,".($arFields["EXTERNAL_ID"] != ""? "'".$DB->ForSql($arFields["EXTERNAL_ID"], 50)."'": "null")."
		)";
	$DB->Query($strSql);
	$fileId = $DB->LastID();

	//store the file hash for duplicates search
	if($arFields["FILE_HASH"] <> '')
	{
		InternalFileHashTable::add([
			"FILE_ID" => $fileId,
			"FILE_SIZE" => $size,
			"FILE_HASH" => $arFields["FILE_HASH"],
		]);
	}

	$arFields["ID"] = $fileId;
	foreach(GetModuleEvents("main", "OnAfterFileSave", true) as $arEvent)
	{
		ExecuteModuleEventEx($arEvent, array($arFields));
	}

	return $fileId;
}