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

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