• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/file_temp.php
  • Класс: CTempFile
  • Вызов: CTempFile::GetFileName
static function GetFileName($file_name = '')
{
	$dir_name = self::GetAbsoluteRoot();
	$file_name = rel2abs("/", "/".$file_name);

	while(true)
	{
		$dir_add = SecurityRandom::getString(32);

		$temp_path = $dir_name."/".$dir_add.$file_name;

		if(!file_exists($temp_path))
		{
			//Delayed unlink
			if(!self::$is_exit_function_registered)
			{
				self::$is_exit_function_registered = true;
				register_shutdown_function(array('CTempFile', 'Cleanup'));
			}

			self::$arFiles[$temp_path] = $dir_name."/".$dir_add;

			//Function ends only here
			return $temp_path;
		}
	}
}