• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/uf/controller.php
  • Класс: BitrixDiskUfController
  • Вызов: Controller::processActionDownload
protected function processActionDownload($showFile = false)
{
	$attachedModel = $this->getAttachedModel();

	$file = $attachedModel->getFile();
	if (!$file)
	{
		$this->sendJsonErrorResponse();
	}

	$fileName = $file->getName();
	$fileData = $file->getFile();

	$version = $attachedModel->getVersion();
	if ($version)
	{
		$fileName = $version->getName();
		$fileData = $version->getFile();
	}

	$isImage = TypeFile::isImage($fileData['ORIGINAL_NAME']) || TypeFile::isImage($fileName);
	$isImage = $isImage && !TypeFile::shouldTreatImageAsFile($fileData);
	$cacheTime = $isImage ? 86400 : Configuration::DEFAULT_CACHE_TIME;

	if ($isImage)
	{
		$fileData = $this->resizeImage($fileData, $attachedModel->getId());
	}
	else
	{
		$trackedObjectManager = Driver::getInstance()->getTrackedObjectManager();
		$trackedObjectManager->pushAttachedObject($this->getUser()->getId(), $attachedModel, true);
	}

	if ($isImage && $showFile && $attachedModel->getConnector()->isAnonymousAllowed())
	{
		$response = BitrixMainContext::getCurrent()->getResponse();
		$response->addHeader("X-Bitrix-Public-Link", "img");
	}

	CFile::viewByUser($fileData, array('force_download' => !$showFile, 'cache_time' => $cacheTime, 'attachment_name' => $fileName));
}