Example #1
0
 /**
  * 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;
 }