public static function deleteFolder($dir_path) { $dir_path = rtrim($dir_path, '/'); foreach (glob($dir_path . '/*') as $file) { if (is_dir($file)) { self::deleteFolder($file); } else { File::deleteFile($file); } } return rmdir($dir_path); }
$folders = getPostValue("folders"); if (!empty($folders)) { for ($i = 0; $i < sizeof($folders); $i++) { if (!empty($folders[$i])) { $tmpFolder = new Folder($folders[$i]); $tmpFolder->deleteFolder(); } } } // Delete files $files = getPostValue("files"); if (!empty($files)) { for ($i = 0; $i < sizeof($files); $i++) { if (!empty($files[$i])) { $tmpFile = new File($files[$i]); $tmpFile->deleteFile(); } } } // Redirect redirect(scriptUrl . "/" . folderFilesAdmin . "/" . fileFilesIndex . (!empty($folder->id) ? "?folderId=" . $folder->id : "")); } // Move files $move = getPostValue("move"); if ($move) { // Check if data is submitted from the form checkSubmitter(); // Move folders $folders = getPostValue("folders"); if (!empty($folders)) { for ($i = 0; $i < sizeof($folders); $i++) {
} else { if ($_REQUEST['action'] == 'edit_e') { $id = $_REQUEST['id']; if ($ne->updateEvent($id, $_REQUEST['name'], $_REQUEST['time'], $_REQUEST['venue'], $_REQUEST['desc'])) { Message::setSuccessMessage("Event updated successfully"); header("location:" . $config->site_address . "news-event-admin/"); } else { Message::setFailMessage("Something went wrong please try again."); header("location:" . $config->site_address . "news-event-admin/edit/" . $id); } } else { if ($_REQUEST['action'] == 'edit_n') { $id = $_REQUEST['id']; $file = $ne->getNEInfo($id, 'cover'); if (!Validation::isNull($_FILES['cover']['name'])) { $fileobj->deleteFile($file); $file = uniqid() . "." . pathinfo(basename($_FILES['cover']['name']), PATHINFO_EXTENSION); $fileobj->uploadFile($file, $_FILES['cover']['tmp_name']); } if ($ne->updateNews($id, $_REQUEST['name'], $file, $_REQUEST['desc'])) { Message::setSuccessMessage("News updated successfully"); header("location:" . $config->site_address . "news-event-admin/"); } else { Message::setFailMessage("Something went wrong please try again."); header("location:" . $config->site_address . "news-event-admin/edit/" . $id); } } else { if ($_REQUEST['action'] == 'del_ne') { if ($ne->deleteNE($_REQUEST['id'])) { Message::setSuccessMessage("News/Event deleted successfully. Files related to news/event can not be deleted. you can delete them manually from 'static/news/' or 'static/img' folder."); } else {
/** * Delete this folder, all subsections and files * @return boolean to determine if delete was succesfull */ function deleteFolder() { if (!empty($this->id)) { global $dbi; /* Delete files in folder */ $result = $dbi->query("SELECT id FROM " . fileTableName . " WHERE folderId=" . $this->id); for ($i = 0; list($id) = $result->fetchrow_array(); $i++) { $file = new File($id); $file->deleteFile(); } /* Delete subfolders */ $result = $dbi->query("SELECT id FROM " . folderTableName . " WHERE parentId=" . $this->id); for ($i = 0; list($id) = $result->fetchrow_array(); $i++) { $folder = new Folder($id); $folder->deleteFolder(); } /* Delete logged information in database */ $dbi->query("DELETE FROM " . logTableName . " WHERE type='folder' AND typeId=" . $this->id); /* Delete this folder */ $dbi->query("DELETE FROM " . folderTableName . " WHERE id=" . $this->id); /* Folder was deleted */ return true; } /* Folder was not deleted */ return false; }
public static function syncFolders($folderToSync) { $debug = self::$debug; $mode = self::$mode; import('dao.Folder'); $folder = new Folder(); import('dao.File'); $file = new File(); $folderFullName = $folderToSync['path']; $folderId = $folderToSync['fd_id']; // If folder is locked, ignore. Unless set mode greater than 0. if ($folderToSync['locked'] && $mode == 0) { if ($debug) { ZDebug::my_echo('Ignore locked folder: ' . $folderFullName . '(' . $folderId . ')'); } return TRUE; } // Step 1: If folder is not physically exist, set to deleted in DB. if (!is_dir($folderFullName)) { $folder->deleteFolder($folderId); if ($debug) { ZDebug::my_echo('Delete folder in DB: ' . $folderFullName . '(' . $folderId . ')'); } return TRUE; } // Step 2: Get the result set of files under this folder $filesInFolder = $folder->getFilesInFolder($folderId); $fileNameArr = array(); foreach ($filesInFolder as $theFile) { // Step 3: If a file is not physically exist, delete it in table files. if (!file_exists($theFile['path'])) { $file->deleteFile($theFile['fid']); if ($debug) { ZDebug::my_echo('Delete file in DB: ' . $theFile['path'] . '(' . $theFile['fid'] . ')'); } } elseif ($theFile['last_modified'] != my_filemtime($theFile['path'])) { $theFile['last_modified'] = my_filemtime($theFile['path']); $file->saveFile($theFile); if ($debug) { ZDebug::my_echo('Update file in DB: ' . $theFile['path'] . '(' . $theFile['fid'] . ')'); } } elseif ($mode > 1) { $file->saveFile($theFile); if ($debug) { ZDebug::my_echo('Update file in DB: ' . $theFile['path'] . '(' . $theFile['fid'] . ')'); } } else { } $fileNameArr[] = $theFile['name']; } // Step 5: Get result set of sub-folders under this folder $subFoldera = $folder->getSubFolder($folderId); $folderNameArr = array(); foreach ($subFoldera as $theFolder) { // Step 6: If a folder is not physically exist, set deleted flag in table folders. if (!file_exists($theFolder['path'])) { $folder->deleteFolder($theFolder['fd_id']); if ($debug) { ZDebug::my_echo('Delete folder in DB: ' . $theFolder['path'] . '(' . $theFolder['fd_id'] . ')'); } } elseif ($theFolder['last_modified'] != my_filemtime($theFolder['path'])) { $theFolder['last_modified'] = my_filemtime($theFolder['path']); $folder->saveFolder($theFolder); if ($debug) { ZDebug::my_echo('Update folder in DB: ' . $theFolder['path'] . '(' . $theFolder['fd_id'] . ')'); } self::syncFolders($theFolder); } else { self::syncFolders($theFolder); } $folderNameArr[] = $theFolder['name']; } $hdl = opendir($folderFullName); while ($item = readdir($hdl)) { $itemFullName = $folderFullName . DIRECTORY_SEPARATOR . $item; // Step 8: If physical file is not in DB file result set, then add a file if ($item != "." && $item != ".." && is_file($itemFullName) && !in_array($item, $fileNameArr)) { $file->saveFile(array('path' => $itemFullName, 'fd_id' => $folderId)); if ($debug > 1) { ZDebug::my_echo('Adding new file in DB: ' . $itemFullName); } } // Step 9: if physical folder is not in DB folder result set, then add a folder if ($item != "." && $item != ".." && is_dir($itemFullName) && !in_array($item, $folderNameArr)) { self::addFolder($itemFullName, $folderId); } } closedir($hdl); }
<?php include '../core/includes.php'; $dir = realpath(root . DIRECTORY_SEPARATOR . "assets" . DIRECTORY_SEPARATOR . "images" . DIRECTORY_SEPARATOR . "gallery"); $config = new Config(); $auth = new Auth(); $file = new File($dir); if (!$auth->isAdmin()) { header("Location:" . $config->site_address . "login"); } $action = ""; if (isset($_REQUEST['action'])) { $action = $_REQUEST['action']; } if ($action == 'add') { if (isset($_FILES['photo']['name'][0]) && !empty($_FILES['photo']['name'][0]) && $_FILES['photo']['name'][0] != "") { $images = array(); $i = 0; foreach ($_FILES['photo']['name'] as $image) { $unique_name = uniqid() . "." . pathinfo(basename($image), PATHINFO_EXTENSION); $images[] = $unique_name; $file->uploadFile($unique_name, $_FILES['photo']['tmp_name'][$i]); $i++; } } } else { if ($action == 'remove') { $file->deleteFile($_REQUEST['path']); } } header("Location:" . $_REQUEST['return_path']);