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

GetList

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

CDBResult
CFile::GetList(
	array arOrder = array(),
	array arFilter = array()
);

Метод возвращает отфильтрованную и отсортированную выборку зарегистрированных файлов в виде объекта класса CDBResult. Статический метод.

Примечание: некоторые поля фильтра (SUBDIR, FILE_NAME) и сортировка обрабатываются начиная с версии 10.0.6 главного модуля.

Параметры

Параметр Описание
arOrder Массив, содержащий признак сортировки в виде пар "поле"=>"направление". Поддерживаются следующие поля: ID, TIMESTAMP_X, MODULE_ID, HEIGHT, WIDTH, FILE_SIZE, CONTENT_TYPE, SUBDIR, FILE_NAME, ORIGINAL_NAME. Направление сортировки может принимать значения "ASC", "DESC". Если параметр пуст, то выборка будет отсортирована по полю ID по возрастанию.
arFilter Массив, содержащий фильтр в виде пар "поле"=>"значение". Поддерживаются следующие поля фильтра: MODULE_ID, ID, SUBDIR, FILE_NAME, ORIGINAL_NAME, CONTENT_TYPE. Если указать в начале поля символ @, то можно передать несколько значений через запятую (применяется оператор IN), например: "@ID"=>"1,2,3,4,5".

Возвращаемое значение

Объект типа  CDBResult.

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

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

<?
//найдем самые большие файлы ядра
$res = CFile::GetList(array("FILE_SIZE"=>"desc"), array("MODULE_ID"=>"main"));
while($res_arr = $res->GetNext())
	echo $res_arr["SUBDIR"]."/".$res_arr["FILE_NAME"]." = ".$res_arr["FILE_SIZE"]."<br>";
?>

Получение списка файлов по фильтру. К сожалению, пока можно фильтровать и сортировать только по ID и MODULE.

CFile::GetList($arOrder = Array(), $arFilter = Array(), $arParams = Array())

При сортировке по ID можно передавать либо просто один ID:

$arFilter = Array("ID" => 123);

либо массив ID (в ключ добавляется @ и разделяется запятыми):

$arFilter = Array("@ID" => "123,124,125");

Параметр функции $arParams есть, но на данный момент вообще никак не используется в работе функции.



Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Алексей Попович
Сообщение не промодерировано, возможны ошибки и неточности.
Для выборки информации по ID-шникам, идентификаторы нужно передавать строкой, А не массивом:
Код
$rsFiles = \CFile::GetList(['ID'=>'asc'],['@ID'=>implode(',',array_keys($arFiles))]);
while ($arFileInfo = $rsFiles->fetch()){
   $arFiles[$arFileInfo['ID']] = [
      'SRC' => '/upload/' . $arFileInfo['SUBDIR'] . '/' . $arFileInfo['FILE_NAME'],
      'ORIGINAL_NAME' => $arFileInfo['ORIGINAL_NAME'],
      'DESCRIPTION' => $arFileInfo['DESCRIPTION'],
      'FILE_SIZE' => $arFileInfo['FILE_SIZE'],
      'PRINT_FILE_SIZE' => CourseHelper::format_size($arFileInfo['FILE_SIZE']),
      'IS_IMAGE' => \CFile::IsImage($arFileInfo['FILE_NAME'], $arFileInfo['CONTENT_TYPE'])
   ];
}
3
Анатолий Ветринцев
Вот так можно корректно сгенерировать ссылку на файл с учетом папки upload:
Код
<?
$res = CFile::GetList(array("FILE_SIZE"=>"desc"), array("MODULE_ID"=>"main"));
while($res_arr = $res->GetNext())
   echo COption::GetOptionString("main", "upload_dir", "upload") . "/" . $res_arr["SUBDIR"] . "/" . $res_arr["FILE_NAME"];
?>
Метод взят из самого класса CFile
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх