/** * Replace filesystem file with given file. * * @param \GO\Base\Fs\File $fsFile */ public function replace(\GO\Base\Fs\File $fsFile, $isUploadedFile = false) { if ($this->isLocked()) { throw new \GO\Files\Exception\FileLocked(); } // for safety allow replace action // if(!File::checkQuota($fsFile->size()-$this->size)) // throw new \GO\Base\Exception\InsufficientDiskSpace(); if (!$this->isNew) { $this->log('edit'); } $this->saveVersion(); if (!$fsFile->move($this->folder->fsFolder, $this->name, $isUploadedFile)) { return false; } $fsFile->setDefaultPermissions(); $this->mtime = $fsFile->mtime(); $this->save(); $this->fireEvent('replace', array($this, $isUploadedFile)); return true; }
/** * Add a filesystem file to this folder. The file will be moved to this folder * and added to the database. * * @param \GO\Base\Fs\File $file * @param boolean $appendNumberToNameIfExists Set if a number needs to be added to the name if the file already exists. * @return File */ public function addFilesystemFile(\GO\Base\Fs\File $file, $appendNumberToNameIfExists = false) { if (!File::checkQuota($file->size())) { throw new \GO\Base\Exception\InsufficientDiskspace(); } $file->move($this->fsFolder, false, false, $appendNumberToNameIfExists); $file->setDefaultPermissions(); return $this->addFile($file->name()); }