• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_disk.php
  • Класс: CIMDisk
  • Вызов: CIMDisk::SaveToLocalDisk
static function SaveToLocalDisk($fileId)
{
	if (!self::Enabled())
	{
		return false;
	}

	if ((int)$fileId <= 0)
	{
		return false;
	}

	$fileModel = BitrixDiskFile::getById($fileId, array('STORAGE'));
	if (!$fileModel)
	{
		return false;
	}
	if ($fileModel instanceof BitrixDiskFileLink)
	{
		$fileModel = $fileModel->getRealObject();
		if (!$fileModel)
		{
			return false;
		}
	}

	$storageModel = $fileModel->getStorage();
	if (!$storageModel)
	{
		return false;
	}

	if (!$fileModel->canRead($storageModel->getCurrentUserSecurityContext()))
	{
		return false;
	}

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

	$newFileModel = $fileModel->copyTo($folderModel, self::GetUserId(), true);
	if (!$newFileModel)
	{
		return false;
	}

	return [
		'FILE' => $newFileModel,
		'FOLDER' => $folderModel,
	];
}