• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/engine/response/zip/archiveentry.php
  • Класс: BitrixMainEngineResponseZipArchiveEntry
  • Вызов: ArchiveEntry::createFromFile
static function createFromFile(array $fileArray, $name = null)
{
	$zipEntry = new static();
	$zipEntry->setName($name?: $fileArray['ORIGINAL_NAME']);
	$zipEntry->size = (int)$fileArray['FILE_SIZE'];

	if (empty($fileArray['SRC']))
	{
		$fileArray['SRC'] = CFile::getFileSrc($fileArray);
	}

	$fromClouds = false;
	$filename = $fileArray['SRC'];
	if (isset($fileArray['HANDLER_ID']) && !empty($fileArray['HANDLER_ID']))
	{
		$fromClouds = true;
	}

	if ($fromClouds)
	{
		$filename = preg_replace('~^(http[s]?)(://)~i', '\1.' , $filename);
		$cloudUploadPath = Option::get(
			'main',
			'bx_cloud_upload',
			'/upload/bx_cloud_upload/'
		);
		$zipEntry->path = $cloudUploadPath . $filename;
	}
	else
	{
		$zipEntry->path = $filename;
	}
	$zipEntry->path = Uri::urnEncode($zipEntry->path, 'UTF-8');

	return $zipEntry;
}