/** * Adds file in folder. * @param array $data Contains additional fields (CREATED_BY, NAME, etc). * @param array $rights Rights (@see \Bitrix\Disk\RightsManager). * @param bool $generateUniqueName Generates unique name for object in directory. * @throws \Bitrix\Main\ArgumentException * @return null|static|File */ public function addFile(array $data, array $rights = array(), $generateUniqueName = false) { $this->errorCollection->clear(); $this->checkRequiredInputParams($data, array('NAME')); if ($generateUniqueName) { $data['NAME'] = $this->generateUniqueName($data['NAME'], $this->id); } if (!$this->isUniqueName($data['NAME'], $this->id)) { $this->errorCollection->add(array(new Error(Loc::getMessage('DISK_FOLDER_MODEL_ERROR_NON_UNIQUE_NAME'), self::ERROR_NON_UNIQUE_NAME))); return null; } $data['PARENT_ID'] = $this->id; $data['STORAGE_ID'] = $this->storageId; $data['PARENT'] = $this; /** @var File $fileModel */ $fileModel = File::add($data, $this->errorCollection); if (!$fileModel) { return null; } Driver::getInstance()->getRightsManager()->setAsNewLeaf($fileModel, $rights); $this->notifySonetGroup($fileModel); return $fileModel; }