• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_disk.php
  • Класс: CIMDisk
  • Вызов: CIMDisk::GetFileLink
static function GetFileLink(BitrixDiskFile $fileModel)
{
	if (!BitrixMainLoader::includeModule('disk'))
	{
		return false;
	}

	$fileId = $fileModel->getId();

	$signer = new BitrixMainSecuritySignSigner;
	$signKey = self::GetFileLinkSign();
	if (is_string($signKey))
	{
		$signer->setKey($signKey);
	}
	$signedValue = $signer->sign($fileId);

	$urlManager = BitrixMainEngineUrlManager::getInstance();
	$host = $urlManager->getHostUrl();
	$isImage = BitrixDiskTypeFile::isImage($fileModel);

	$link = $host.'/pub/im.file.php?FILE_ID='.$fileId.'&SIGN='.$signedValue;
	if ($isImage)
	{
		$link .= '&img=y';
	}

	$shortLink = $host. CBXShortUri::GetShortUri($link);
	if ($isImage)
	{
		$shortLink .= '#img.'.$fileModel->getExtension();
	}

	return $shortLink;
}