• Модуль: fileman
  • Путь к файлу: ~/bitrix/modules/fileman/classes/general/file_input.php
  • Класс: CFileInput
  • Вызов: CFileInput::GetFile
static function GetFile($fileId = "")
{
	$arFile = CFile::GetFileArray($fileId);
	$io = CBXVirtualIo::GetInstance();
	//Check if not ID but file path was given
	if(!is_array($arFile) && $fileId != "")
	{
		$strFilePath = $_SERVER["DOCUMENT_ROOT"].$fileId;
		if($io->FileExists($strFilePath))
		{
			$flTmp = $io->GetFile($strFilePath);
			$arFile = array(
				"PATH" => $fileId,
				"FILE_SIZE" => $flTmp->GetFileSize(),
				"DESCRIPTION" => "",
			);

			$arImageSize = CFile::GetImageSize($strFilePath);
			if(is_array($arImageSize))
			{
				$arFile["WIDTH"] = intval($arImageSize[0]);
				$arFile["HEIGHT"] = intval($arImageSize[1]);
			}
		}
		elseif(self::$showInfo['IMAGE'] == 'N')
		{
			$arFile = array(
				"PATH" => $fileId,
				"FORMATED_SIZE" => '',
				"DESCRIPTION" => "",
				"IS_IMAGE" => false
			);
			return $arFile;
		}
	}


	$sImagePath = isset($arFile["PATH"]) ? $arFile["PATH"] : $arFile["SRC"];
	if(
		$arFile["HANDLER_ID"]
		|| (defined("BX_IMG_SERVER") && mb_substr($sImagePath, 0, mb_strlen(BX_IMG_SERVER)) === BX_IMG_SERVER)
		|| $io->FileExists($_SERVER["DOCUMENT_ROOT"].$sImagePath)
	)
	{
		$arFile["FORMATED_SIZE"] = CFile::FormatSize($arFile["FILE_SIZE"]);
		$arFile["IS_IMAGE"] = $arFile["WIDTH"] > 0 && $arFile["HEIGHT"] > 0 && self::$showInfo['IMAGE'] != 'N';

		//Mantis:#65168
		if ($arFile["CONTENT_TYPE"] && $arFile["IS_IMAGE"] && mb_strpos($arFile["CONTENT_TYPE"], 'application') !== false)
		{
			$arFile["IS_IMAGE"] = false;
		}

		unset($arFile["MODULE_ID"], $arFile["CONTENT_TYPE"], $arFile["SUBDIR"], $arFile["~src"]);
		return $arFile;
	}

	return false;
}