• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/file_proxy.php
  • Класс: \CCrmFileProxy
  • Вызов: CCrmFileProxy::WriteEventFileToResponse
static function WriteEventFileToResponse($eventID, $fileID, &$errors, $options = array())
{
	$eventID = intval($eventID);
	$fileID = intval($fileID);

	if($eventID <= 0 || $fileID <= 0)
	{
		$errors[] = 'File not found';
		return false;
	}

	//Get event file IDs and check permissions
	$dbResult = CCrmEvent::GetListEx(
		array(),
		array(
			'=ID' => $eventID
			//'CHECK_PERMISSIONS' => 'Y' //by default
		),
		false,
		false,
		array('ID', 'FILES'),
		array()
	);

	$event = $dbResult ? $dbResult->Fetch() : null;

	if(!$event)
	{
		$errors[] = 'File not found';
		return false;
	}

	if(is_array($event['FILES']))
	{
		$eventFiles = $event['FILES'];
	}
	elseif(is_string($event['FILES']) && $event['FILES'] !== '')
	{
		$eventFiles = unserialize($event['FILES'], ['allowed_classes' => false]);
	}
	else
	{
		$eventFiles = array();
	}

	if(
		empty($eventFiles)
		|| !is_array($eventFiles)
		|| !in_array($fileID, $eventFiles, true)
	)
	{
		$errors[] = 'File not found';
		return false;
	}

	return self::InnerWriteFileToResponse($fileID, $errors, $options);
}