- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/classes/general/im_disk.php
- Класс: CIMDisk
- Вызов: CIMDisk::GetPublicPath
static function GetPublicPath($type, BitrixDiskFile $fileModel, $checkContentVersion = true)
{
$result = '';
if (!in_array($type, Array(self::PATH_TYPE_DOWNLOAD, self::PATH_TYPE_SHOW, self::PATH_TYPE_PREVIEW)))
{
return $result;
}
if ($checkContentVersion && $fileModel->getGlobalContentVersion() <= 1)
{
return $result;
}
$urlManager = BitrixMainEngineUrlManager::getInstance();
$isImage = BitrixDiskTypeFile::isImage($fileModel);
$isVideo = BitrixDiskTypeFile::isVideo($fileModel->getName());
if ($type == self::PATH_TYPE_SHOW)
{
if ($isImage)
{
$result = $urlManager->create('disk.api.file.showImage', [
'humanRE' => 1,
'fileId' => $fileModel->getId(),
'fileName' => $fileModel->getName()
])->getUri();
}
else
{
$result = $urlManager->create('disk.api.file.download', [
'humanRE' => 1,
'fileId' => $fileModel->getId(),
'fileName' => $fileModel->getName()
])->getUri();
}
}
else if ($type == self::PATH_TYPE_PREVIEW)
{
if (!($isImage || $isVideo))
{
return $result;
}
if ($fileModel->getView()->getPreviewData())
{
$linkType = 'disk.api.file.showPreview';
$fileName = 'preview.jpg';
}
else if ($isImage)
{
$linkType = 'disk.api.file.showImage';
$fileName = $fileModel->getName();
}
else
{
return $result;
}
$result = $urlManager->create($linkType, [
'humanRE' => 1,
'width' => 640,
'height' => 640,
'signature' => BitrixDiskSecurityParameterSigner::getImageSignature($fileModel->getId(), 640, 640),
'fileId' => $fileModel->getId(),
'fileName' => $fileName
])->getUri();
}
else if ($type == self::PATH_TYPE_DOWNLOAD)
{
$result = $urlManager->create('disk.api.file.download', [
'humanRE' => 1,
'fileId' => $fileModel->getId(),
'fileName' => $fileModel->getName()
])->getUri();
}
return $result;
}