diff --git a/Cumulus.php b/Cumulus.php index 926d5da..6174b0c 100644 --- a/Cumulus.php +++ b/Cumulus.php @@ -16,6 +16,7 @@ class Cumulus implements CumulusInterface { protected $config = array(); public static $CHEMIN_CONFIG = "config/config.json"; + /** Implémentation de la lib de stockage par un adapteur */ protected $storageAdapter; @@ -64,6 +65,12 @@ public function setAuthAdapter($adapter) { $this->storageAdapter->setAuthAdapter($adapter); } + + public function createNewFolder($folderName, $path) { + return $this->storageAdapter->createNewFolder($folderName, $path); + } + + /** * Retourne le chemin racine du stockage de fichiers */ @@ -242,4 +249,4 @@ public function deleteByKey($key, $keepFile=false) { public function getAttributesByKey($key) { return $this->storageAdapter->getAttributesByKey($key); } -} \ No newline at end of file +} diff --git a/CumulusService.php b/CumulusService.php index abce785..c156475 100644 --- a/CumulusService.php +++ b/CumulusService.php @@ -743,6 +743,7 @@ protected function explode($delimiter, $string) { * n'est spécifié, modifie les métadonnées de la clef ciblée */ protected function post() { + $nameOrKey = array_pop($this->resources); $path = '/' . implode('/', $this->resources); @@ -768,6 +769,7 @@ protected function post() { if (! empty($_SERVER["CONTENT_TYPE"])) { $serverContentType = $_SERVER["CONTENT_TYPE"]; } + // détection de la méthode d'envoi $isMPFD = strtolower(substr($serverContentType, 0, 19)) == 'multipart/form-data'; if ($isMPFD) { // envoi de formulaire classique avec multipart/form-data @@ -822,8 +824,9 @@ protected function post() { $info = false; if ($file == null) { - // mise à jour métadonnées seulement - $info = $this->lib->updateByKey($key, $newname, $newpath, $keywords, $groups, $permissions, $license, $meta); + + // création d'un répertoire + $info = $this->lib->createNewFolder($nameOrKey, $path); } else { // ajout / mise à jour de fichier $info = $this->lib->addOrUpdateFile($file, $path, $nameOrKey, $keywords, $groups, $permissions, $license, $meta); @@ -855,4 +858,3 @@ protected function delete() { } -