Example #1
0
    } else {
        $dir = CMSFILESDIR;
    }
}
if (isset($_GET['do'])) {
    if ($_GET['do'] == 'delete') {
        $ok = unlink(realpath($dir) . '/' . $_GET['file']);
        $messages .= '<div class="message ok"><strong>' . $_GET['file'] . '</strong> deleted</div>';
        header("Location: files.php?message={$messages}&dir=" . $dir);
    } else {
        if ($_GET['do'] == 'newfolder') {
            $newDirPath = urldecode($_GET['dir']) . $_GET['newfoldername'];
            $created = @mkdir($newDirPath, 0755);
        } else {
            if ($_GET['do'] == 'deletefolder') {
                if (wipeDir($_GET['killdir'])) {
                    $messages .= '<div class="message ok">Folder <strong>' . $_GET['killdir'] . '</strong> deleted</div>';
                }
            }
        }
    }
}
// Upload new files ?
if ($_FILES) {
    // Loop through all files, and attempt to upload to file directory
    $messages = '';
    foreach ($_FILES as $newfile) {
        if (strlen($newfile['name'])) {
            $uploadfile = realpath($dir) . '/' . basename($newfile['name']);
            if (move_uploaded_file($newfile['tmp_name'], $uploadfile)) {
                $messages .= '<div class="message ok"><strong>' . $newfile['name'] . '</strong> uploaded OK</div>';
        $killFile2 = false;
        $includesDir = stripFileExtension($killFile) . '/';
    } else {
        // Must be a page or Free Include, so find the corresponding Live file??? = $killFile2
        if (strstr($killFile, '../')) {
            $killFile2 = getPreviewFileFromLive($killFile);
        }
        if (getFileExtension($killFile) == "php") {
            // File is a PAGE, try to delete its local folders too
            $includesDir = stripFileExtension(getPreviewFileFromLive($killFile)) . '_cms_files';
            clearstatcache();
        }
    }
}
if (isset($includesDir) && is_dir($includesDir)) {
    if (wipeDir($includesDir)) {
        $includesDirWiped = @rmdir($includesDir);
        /* if (!$includesDirWiped) {
        				print('error:couldntwipepageincludesfolder') ;
        				exit ;
        			}*/
    }
}
/* 
	Delete the corresponding Page/FI
*/
if ($killFile2 && False === @unlink($killFile2)) {
    print 'error:deletefile2failed';
}
// OK. Let the View know delete worked.
if (!isset($_GET['suppress_output'])) {
   You should have received a copy of the GNU General Public License
   along with Cmsfromscratch.  If not, see <http://www.gnu.org/licenses/>.
   ***********************************************************************
*/
require '../cmsfns.php';
if (!isset($_GET['dir'])) {
    print 'error:nodirectorytodelete';
    exit;
}
$liveDir = pathFromID($_GET['dir']);
$previewDir = getPreviewFileFromLive($liveDir);
if (is_dir($liveDir)) {
    // Delete directory
    $dirWiped = wipeDir($liveDir);
    @rmdir($liveDir);
    /* if  (False === @rmdir($liveDir)) {
    			print('error:Delete live copy of folder failed') ;
    			exit ;
    		}*/
}
if (is_dir($previewDir)) {
    // Delete directory
    $dirWiped = wipeDir($previewDir);
    @rmdir($previewDir);
    /* if  (False === @rmdir($previewDir)) {
    			print('error:Delete preview copy of folder failed') ;
    			exit ;
    		}*/
}
// SUCCESS
print $_GET['dir'];
Example #4
0
function wipeDir($dir)
{
    if ($handle = opendir($dir)) {
        while (false !== ($file = readdir($handle))) {
            $path = $dir . '/' . $file;
            if (is_file($path)) {
                if (!unlink($path)) {
                    // Error
                    echo 'Failed to delete <strong>' . $path, '</strong><br />';
                    return false;
                }
            } else {
                if (is_dir($path) && substr($file, 0, 1) != '.') {
                    wipeDir($path);
                    // @rmdir($path) ; This should be done by the calling script...
                    // echo 'Removed dir <strong>' .  $path, '</strong><br />' ;
                }
            }
        }
        closedir($handle);
        $final = rmdir($dir);
        return True;
    } else {
        echo 'Failed to find: ' . $dir;
        return False;
    }
}