/** * Create the specified file. * I dont understand why this exists with the provided $file. Surely if we want to * create a file we should be calling the file's constructor or one of its static * creation methods? * @param FileInterface $file - the file to be created? * @param FolderInterface $parent - the parent folder to stick the file within. * * @return FileInterface */ public function createFile(FileInterface $file, FolderInterface $parent) { $filepath = $file->getPath() . '/' . $file->getName(); $gridFs = ConnectionHandler::getInstance()->getConnection(); $timeNow = time(); $mongoFolder = MongoFolder::loadFromFolderInterface($parent); $metadata = array('creation_time' => $file->getCreatedTime(), 'modification_time' => $file->getModifiedTime(), 'parent' => $mongoFolder->getMongoId(), 'type' => 'file'); # This is another hack where the getPath() method here is returning the path to the # file as it is locally stored in the linux filesystem, rather than the path of where # it will be stored withing the mongo based filesystem. $mongoId = $gridFs->storeFile($file->getPath(), $metadata); $mongoFile = MongoFile::loadFromMongoId($mongoId); return $mongoFile; }
/** * @param FileInterface $file * @return array */ private function getValidateFileResult(FileInterface $file) { $check = array('File name not specified' => !$file->getName(), 'Filesize not specified' => is_null($file->getSize()), 'Created time not specified' => !$file->getCreatedTime(), 'File path already exists' => $this->fileExists($file->getPath())); return $check; }