• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/classes/diskdispatcher.php
  • Класс: CWebDavDiskDispatcher
  • Вызов: CWebDavDiskDispatcher::processActionDownload
public function processActionDownload(array $params)
{
	$this->checkRequiredParams($params, array('id', 'version', 'extra', 'storageExtra', 'storageId'));

	$id = $params['id'];
	$version = $params['version'];

	$storage = $this->getStorageObject($params['storageExtra'], $params['storageId']);
	$extra = $storage->parseElementExtra($params['extra']);

	$file = $storage->getFile($id, $extra);
	//not found or we have new version
	if( !$file || (!isset($file['version']) || $storage::compareVersion($file['version'], $version) != 0) )
	{
		return $this->sendResponse(array(
			'status' => static::STATUS_NOT_FOUND,
		));
	}
	else
	{
		if(!$storage->sendFile($file))
		{
			return $this->sendResponse(array(
				'status' => static::STATUS_NOT_FOUND,
				'message' => 'Not found source file',
			));
		}
	}
}