• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/transfer/appconfiguration.php
  • Класс: BitrixLandingTransferAppConfiguration
  • Вызов: AppConfiguration::saveFile
static function saveFile(array $file): ?int
{
	$checkExternal = self::$contextSiteId && ($file['ID'] ?? null);
	$externalId = $checkExternal ? self::$contextSiteId . '_' . $file['ID'] : null;

	if ($externalId)
	{
		$res = CFile::getList([], ['EXTERNAL_ID' => $externalId]);
		if ($row = $res->fetch())
		{
			return $row['ID'];
		}
	}

	$fileId = null;
	$fileData = CFile::makeFileArray(
		$file['PATH']
	);

	if ($fileData)
	{
		$fileData['name'] = $file['NAME'];
		$fileData['external_id'] = $externalId;

		if (CFile::checkImageFile($fileData, 0, 0, 0, array('IMAGE')) === null)
		{
			$fileData['MODULE_ID'] = 'landing';
			$fileData['name'] = File::sanitizeFileName($fileData['name']);
			$fileId = (int)CFile::saveFile($fileData, $fileData['MODULE_ID']);
			if (!$fileId)
			{
				$fileId = null;
			}
		}
	}

	return $fileId;
}