Uploader::remove

  1. Bitrix24 API (v. 23.675.0)
  2. ui
  3. Uploader
  4. remove
  • Модуль: ui
  • Путь к файлу: ~/bitrix/modules/ui/lib/FileUploader/Uploader.php
  • Класс: BitrixUIFileUploaderUploader
  • Вызов: Uploader::remove
public function remove(array $ids): RemoveResultCollection
{
	$controller = $this->getController();
	if ($controller instanceof CustomRemove)
	{
		return $controller->remove($ids);
	}

	$results = new RemoveResultCollection();
	[$bfileIds, $tempFileIds] = $this->splitIds($ids);

	// Files from b_file
	if (count($bfileIds) > 0)
	{
		$fileOwnerships = new FileOwnershipCollection($bfileIds);
		if ($controller->canRemove())
		{
			$controller->verifyFileOwner($fileOwnerships);
		}

		foreach ($fileOwnerships as $fileOwnership)
		{
			$removeResult = new RemoveResult($fileOwnership->getId());
			if ($fileOwnership->isOwn())
			{
				// TODO:  remove file
			}
			else
			{
				$removeResult->addError(new UploaderError(UploaderError::FILE_REMOVE_ACCESS_DENIED));
			}

			$results->add($removeResult);
		}
	}

	// Temp Files
	if (count($tempFileIds) > 0)
	{
		foreach ($tempFileIds as $tempFileId)
		{
			$removeResult = new RemoveResult($tempFileId);
			$results->add($removeResult);

			$guid = $this->getGuidFromToken($tempFileId);
			if (!$guid)
			{
				$removeResult->addError(new UploaderError(UploaderError::INVALID_SIGNATURE));
				continue;
			}

			$tempFile = TempFileTable::getList([
				'filter' => [
					'=GUID' => $guid,
				],
			])->fetchObject();

			if ($tempFile)
			{
				$tempFile->delete();
			}
		}
	}

	return $results;
}

Добавить комментарий