From f428a2d9609a37676b7f56133d55d0ecc7d5328f Mon Sep 17 00:00:00 2001 From: drigato Date: Mon, 28 Apr 2014 16:20:26 -0400 Subject: [PATCH] CC-5821: Airtime Analyzer: Ftp-uploaded folder doesn't get removed from organize Delete the empty folder after files have been copied into imported --- .../rest/controllers/MediaController.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/airtime_mvc/application/modules/rest/controllers/MediaController.php b/airtime_mvc/application/modules/rest/controllers/MediaController.php index d6881e831..8838d4e4f 100644 --- a/airtime_mvc/application/modules/rest/controllers/MediaController.php +++ b/airtime_mvc/application/modules/rest/controllers/MediaController.php @@ -144,11 +144,24 @@ class Rest_MediaController extends Zend_Rest_Controller if (isset($whiteList["full_path"])) { $fullPath = $whiteList["full_path"]; $basePath = isset($_SERVER['AIRTIME_BASE']) ? $_SERVER['AIRTIME_BASE']."/srv/airtime/stor/organize/" : "/srv/airtime/stor/organize/"; + //$relativePath is the folder name(if one) + track name, that was uploaded via ftp $relativePath = substr($fullPath, strlen($basePath)-1); + //after the file is moved from organize store it's parent folder so we can delete it after + if (dirname($relativePath) != '/') { + $pathToDelete = Application_Common_OsPath::join( + $basePath, + dirname($relativePath) + ); + } else { + //if the uploaded file was not in a folder, DO NOT delete + $pathToDelete = False; + } } else { $relativePath = $_FILES["file"]["name"]; + $pathToDelete = False; } + $file->fromArray($whiteList); $file->setDbOwnerId($this->getOwnerId()); @@ -161,6 +174,11 @@ class Rest_MediaController extends Zend_Rest_Controller $callbackUrl = $this->getRequest()->getScheme() . '://' . $this->getRequest()->getHttpHost() . $this->getRequest()->getRequestUri() . "/" . $file->getPrimaryKey(); $this->processUploadedFile($callbackUrl, $relativePath, $this->getOwnerId()); + + if (!$pathToDelete) { + //delete the empty folder that was uploaded via ftp (if one) + rmdir($pathToDelete); + } $this->getResponse() ->setHttpResponseCode(201)