• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_disk.php
  • Класс: CIMDisk
  • Вызов: CIMDisk::UploadFileFromMain
static function UploadFileFromMain($chatId, $files)
{
	if ((int)$chatId <= 0 || empty($files))
	{
		return false;
	}

	$chatRelation = CIMChat::GetRelationById($chatId, false, true, false);
	if (!$chatRelation)
	{
		return false;
	}

	$folderModel = self::GetFolderModel($chatId);
	if (!$folderModel)
	{
		return false;
	}

	$messageFileId = [];
	foreach ($files as $fileId)
	{
		$res = CFile::GetByID($fileId);
		$file = $res->Fetch();
		if (!$file)
		{
			continue;
		}

		if (empty($file['ORIGINAL_NAME']))
		{
			$fileName = $file['FILE_NAME'];
		}
		else
		{
			$fileName = $file['ORIGINAL_NAME'];
		}

		$fileName = BitrixDiskUiText::correctFilename($fileName);
		$newFile = $folderModel->addFile(array(
			'NAME' => $fileName,
			'FILE_ID' => $fileId,
			'SIZE' => $file['FILE_SIZE'],
			'CREATED_BY' => BitrixDiskSystemUser::SYSTEM_USER_ID,
		), Array(), true);
		if ($newFile)
		{
			$newFile->increaseGlobalContentVersion();
			$messageFileId[] = $newFile->getId();
		}
	}

	return !empty($messageFileId) ? $messageFileId : false;
}