- Модуль: forum
- Путь к файлу: ~/bitrix/modules/forum/classes/general/rest.php
- Класс: CForumRestService
- Вызов: CForumRestService::getFileData
static function getFileData($diskObjectId)
{
$result = false;
$diskObjectId = intval($diskObjectId);
if ($diskObjectId <= 0)
{
return $result;
}
if ($fileModel = BitrixDiskFile::getById($diskObjectId))
{
/** @var BitrixDiskFile $fileModel */
$contentType = 'file';
$imageParams = false;
if (BitrixDiskTypeFile::isImage($fileModel))
{
$contentType = 'image';
$params = $fileModel->getFile();
$imageParams = Array(
'width' => (int)$params['WIDTH'],
'height' => (int)$params['HEIGHT'],
);
}
else if (BitrixDiskTypeFile::isVideo($fileModel->getName()))
{
$contentType = 'video';
$params = $fileModel->getView()->getPreviewData();
$imageParams = Array(
'width' => (int)$params['WIDTH'],
'height' => (int)$params['HEIGHT'],
);
}
$isImage = BitrixDiskTypeFile::isImage($fileModel);
$urlManager = BitrixDiskDriver::getInstance()->getUrlManager();
$result = array(
'id' => (int)$fileModel->getId(),
'date' => $fileModel->getCreateTime(),
'type' => $contentType,
'name' => $fileModel->getName(),
'size' => (int)$fileModel->getSize(),
'image' => $imageParams,
'authorId' => (int)$fileModel->getCreatedBy(),
'authorName' => CUser::FormatName(CSite::getNameFormat(false), $fileModel->getCreateUser(), true, true),
'urlPreview' => (
$fileModel->getPreviewId()
? $urlManager->getUrlForShowPreview($fileModel, [ 'width' => 640, 'height' => 640])
: (
$isImage
? $urlManager->getUrlForShowFile($fileModel, [ 'width' => 640, 'height' => 640])
: null
)
),
'urlShow' => ($isImage ? $urlManager->getUrlForShowFile($fileModel) : $urlManager->getUrlForDownloadFile($fileModel)),
'urlDownload' => $urlManager->getUrlForDownloadFile($fileModel)
);
}
return $result;
}