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

GetFileArray

Описание и параметры

mixed CFile::GetFileArray(
	int FILE_ID,
	$upload_dir = false
)

Метод возвращает массив описывающий файл с заданным идентификатором или false, если файла с таким идентификатором не существует. Удобно когда нужно получить одним методом и имя файла, и путь к нему на сервере. Статический метод.

Параметры

Параметр Описание С версии
  FILE_ID   Идентификатор файла. Состав полей:
  • ID - идентификатор файла.
  • TIMESTAMP_X - дата загрузки.
  • MODULE_ID - идентификатор модуля загрузившего файл.
  • HEIGHT - для картинок высота.
  • WIDTH - для картинок ширина.
  • FILE_SIZE - размер в байтах.
  • CONTENT_TYPE - тип содержимого, выдаётся mime-type.
  • SUBDIR - поддиректория внутри папки UPLOAD.
  • FILE_NAME - имя файла после преобразования и убирания некорректных символов. Если стоит опция в настройках главного модуля Сохранять исходные имена загружаемых файлов, то фактически не будет отличаться от ORIGINAL_NAME (Будет приведен в безопасный вид при включённой опции Автоматически заменять невалидные символы в именах загружаемых файлов).
  • ORIGINAL_NAME - оригинальное имя файла во время загрузки.
  • DESCRIPTION - описание.
  • SRC - относительный путь относительно DOCUMENT_ROOT.
  • EXTERNAL_ID - внешний идентификатор файла.
upload_dir Директория для загрузки. По умолчанию - false. 10.0.11

Смотрите также

Класс CFile

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

//Покажем изображение анонса элемента инфоблока
//$ELEMENT_ID - идентификатор этого элемента
if(CModule::IncludeModule('iblock'))
{
	$rsElement = CIBlockElement::GetList(
		array(),
		array("=ID"=>$ELEMENT_ID),
		false,
		false,
		array("PREVIEW_PICTURE")
	);
	if($arElement = $rsElement->Fetch())
	{
		$arFile = CFile::GetFileArray($arElement["PREVIEW_PICTURE"]);
		if($arFile)
			echo '<img src="'.$arFile["SRC"].'" />';
	}
}

Получение всех файловых свойств у элементов из массива $arResult

foreach ($arResult["ITEMS"] as $k=>$v)
{
	foreach ($v["PROPERTIES"] as $kk=>$vv)
	{
		if ($vv["PROPERTY_TYPE"] == "F")
		{
			if ($vv["MULTIPLE"] == "Y")
			{
				foreach ($vv["VALUE"] as $kkk=>$vvv)
				{
					$arResult["ITEMS"][$k]["PROPERTIES"][$kk]["VALUE"][$kkk] = CFile::GetFileArray($vvv);
					$arResult["ITEMS"][$k]["PROPERTIES"][$kk]["VALUE"][$kkk]["DESCRIPTION"] = $vv["DESCRIPTION"][$kkk];
				}
			}
			else
			{
				$arResult["ITEMS"][$k]["PROPERTIES"][$kk]["VALUE"] = CFile::GetFileArray($vv["VALUE"]);
				$arResult["ITEMS"][$k]["PROPERTIES"][$kk]["VALUE"]["DESCRIPTION"] = $vv["DESCRIPTION"];
			}
		}
	}
}

Пример из компонента bitrix:news.list

$rsElement = CIBlockElement::GetList($arSort, $arFilter, false, $arNavParams, $arSelect);
while($obElement = $rsElement->GetNextElement())
{
	$arItem = $obElement->GetFields();
	...
	if(array_key_exists("PREVIEW_PICTURE", $arItem))
		$arItem["PREVIEW_PICTURE"] = CFile::GetFileArray($arItem["PREVIEW_PICTURE"]);
	if(array_key_exists("DETAIL_PICTURE", $arItem))
		$arItem["DETAIL_PICTURE"] = CFile::GetFileArray($arItem["DETAIL_PICTURE"]);
	...
}


© «Битрикс», 2001-2024, «1С-Битрикс», 2024