Встроенный метод CAllFile::GetList() в Bitrix не поддерживает фильтрацию по массиву ID файлов. Для выборки описаний сразу по нескольким файлам написал собственную функцию:
function __arfileGetList($ar_FileID)
{
if(is_array($ar_FileID) && count($ar_FileID) > 0)
{
global $DB;
$rs_File = $DB->Query(
"SELECT * FROM b_file WHERE ID IN
(". implode(',', $ar_FileID). ")",
false,
"FILE: ".__FILE__." LINE: ".__LINE__
);
while($ar_File = $rs_File->Fetch())
{
$ar_Result[] = $ar_File;
}
if(is_array($ar_Result) && count($ar_Result) > 0)
return $ar_Result;
}
}Важно: необходимо проверять содержимое $ar_FileID для обеспечения безопасности перед передачей в запрос.
В комментариях была предложена альтернатива через стандартный API: CFile::GetList() с фильтром вида array("@ID" => $strFileID).
