public static function getFileInfo($fileID, $checkPermissions = true, $options = null) { if (!Loader::includeModule('disk')) { return null; } $fileID = (int) $fileID; if ($fileID <= 0) { return null; } /** @var File $file */ $file = File::loadById($fileID); if (!$file) { return null; } if (!is_array($options)) { $options = array(); } $ownerID = isset($options['OWNER_ID']) ? $options['OWNER_ID'] : 0; $ownerTypeID = isset($options['OWNER_TYPE_ID']) ? $options['OWNER_TYPE_ID'] : \CCrmOwnerType::Undefined; $canRead = true; $viewUrl = ''; if ($ownerID > 0 && \CCrmOwnerType::isDefined($ownerTypeID)) { $viewUrlParams = array('fileId' => $fileID, 'ownerTypeId' => $ownerTypeID, 'ownerId' => $ownerID); if (isset($options['VIEW_PARAMS']) && is_array($options['VIEW_PARAMS'])) { $viewUrlParams = array_merge($viewUrlParams, $options['VIEW_PARAMS']); } $viewUrl = \CHTTP::urlAddParams('/bitrix/tools/crm_show_file.php', $viewUrlParams); if (isset($options['USE_ABSOLUTE_PATH']) && $options['USE_ABSOLUTE_PATH']) { $viewUrl = \CCrmUrlUtil::ToAbsoluteUrl($viewUrl); } } elseif ($checkPermissions) { $canRead = $file->canRead($file->getStorage()->getSecurityContext(\CCrmSecurityHelper::getCurrentUserID())); if ($canRead) { $viewUrl = Driver::getInstance()->getUrlManager()->getUrlForDownloadFile($file); } } return array('ID' => $fileID, 'NAME' => $file->getName(), 'SIZE' => \CFile::FormatSize($file->getSize()), 'CAN_READ' => $canRead, 'VIEW_URL' => $viewUrl); }