• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/rest.php
  • Класс: CSocNetLogRestService
  • Вызов: CSocNetLogRestService::getFileData
static function getFileData($diskObjectId)
{
	$result = false;

	$diskObjectId = (int)$diskObjectId;
	if ($diskObjectId <= 0)
	{
		return $result;
	}

	if ($fileModel = BitrixDiskFile::getById($diskObjectId))
	{
		/** @var BitrixDiskFile $fileModel */
		$contentType = 'file';
		$imageParams = false;
		if (BitrixDiskTypeFile::isImage($fileModel->getName()))
		{
			$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;
}