• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/uf/integration/diskuploadercontroller.php
  • Класс: BitrixDiskUfIntegrationDiskUploaderController
  • Вызов: DiskUploaderController::onUploadComplete
public function onUploadComplete(UploadResult $uploadResult): void
{
	$tempFile = $uploadResult->getTempFile();
	[$folder, $storage] = $this->getFolderAndStorage($tempFile->getFilename());
	if ($folder === null || $storage === null || !$folder->canAdd($storage->getCurrentUserSecurityContext()))
	{
		$uploadResult->addError(new Error('Access denied'));

		return;
	}

	$tempFile = $uploadResult->getTempFile();
	$diskFile = $folder->addFile(
		[
			'NAME' => Text::correctFilename($tempFile->getFilename()),
			'FILE_ID' => $tempFile->getFileId(),
			'SIZE' => $tempFile->getSize(),
			'CREATED_BY' => $tempFile->getCreatedBy(),
		],
		[],
		true
	);

	if ($diskFile)
	{
		$fileInfo = $this->createFileInfo($diskFile);
		$uploadResult->setFileInfo($fileInfo);
		$tempFile->makePersistent();
	}
	else
	{
		if (is_array($folder->getErrors()))
		{
			$uploadResult->addErrors($folder->getErrors());
		}
		else
		{
			$uploadResult->addError(new Error('The file has not been saved'));
		}

		$tempFile->delete();
	}
}