• Модуль: socialservices
  • Путь к файлу: ~/bitrix/modules/socialservices/lib/integration/zoom/diskhelper.php
  • Класс: BitrixSocialServicesIntegrationZoomDiskHelper
  • Вызов: DiskHelper::saveFile
static function saveFile(array $arFile, int $userId, $siteId = SITE_ID): Result
{
	$result = new Result();
	if (!Loader::includeModule("disk"))
	{
		return $result->addError(new Error("Disk module is not installed"));
	}

	$subFolder = self::getRecordsFolder((new DateTime())->format("Y-m"), $siteId);
	if (!$subFolder)
	{
		return $result->addError(new Error("Could not create records folder"));
	}

	$accessCodes = [];
	$rightsManager = BitrixDiskDriver::getInstance()->getRightsManager();
	$fullAccessTaskId = $rightsManager->getTaskIdByName($rightsManager::TASK_FULL);

	$accessCodes[] = [
		'ACCESS_CODE' => 'U' . $userId,
		'TASK_ID' => $fullAccessTaskId,
	];
	$accessCodes[] = [
		'ACCESS_CODE' => 'G1',
		'TASK_ID' => $fullAccessTaskId,
	];

	$fileModel = $subFolder->uploadFile(
		$arFile,
		['CREATED_BY' => $userId,],
		$accessCodes,
		true
	);

	if(!$fileModel)
	{
		if(count($subFolder->getErrors()) > 0)
		{
			return $result->addErrors($subFolder->getErrors());
		}
		return $result->addError(new Error("Unknown error while saving file"));
	}
	return $result->setData([
		'fileId' => $fileModel->getId()
	]);
}