• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/downloadcontroller.php
  • Класс: BitrixDiskDownloadController
  • Вызов: DownloadController::processActionDownloadByExternalLink
protected function processActionDownloadByExternalLink($externalLink)
{
	if(!ExternalLink::isValidValueForField('HASH', $externalLink, $this->errorCollection))
	{
		$this->sendJsonErrorResponse();
	}

	/** @var ExternalLink $externalLink */
	$externalLink = ExternalLink::load(
		array(
			'=HASH' => $externalLink,
		),
		array(
			'FILE'
		)
	);

	if (!$externalLink || $externalLink->isExpired() || $externalLink->isSpecificVersion() || !$externalLink->getFile())
	{
		$this->errorCollection[] = new Error('Could not find external link');
		$this->sendJsonErrorResponse();
	}

	if ($externalLink->hasPassword())
	{
		$this->errorCollection[] = new Error('Could not use external link with password');
		$this->sendJsonErrorResponse();
	}

	$file = $externalLink->getFile();
	$fileData = $file->getFile();

	CFile::viewByUser($fileData, array('force_download' => false, 'attachment_name' => $file->getName()));
}