php rmdir или отсоединить файл от папки

Следующий код удаляет файлы в папке uploads. Как удалить папку, когда пользователь нажимает Delete Folder (или подобное).

Я пытался использовать rmdir, но я не получаю ошибок, только пустой файл move.php.

Каков правильный/рекомендуемый способ сделать это? Пожалуйста посоветуй.

    <?php
    $actfolder = $_REQUEST['folder'];
    require_once("models/config.php");

    if(!securePage($_SERVER['PHP_SELF'])){
        die();
    }
    require("models/db-settings.php");

    if(isset($_GET['file'])){
        $filename = "uploads/$loggedInUser->username$actfolder/" . ltrim($_GET['file'], '/\\');
        // make sure only deleting a file in files/ directory
        if (dirname(realpath($filename)) == realpath("uploads/$loggedInUser->username$actfolder/")) {
            unlink($filename);
        }
    }
    header("Location:".$_SERVER["HTTP_REFERER"]);
?>

person anmo    schedule 26.02.2014    source источник
comment
Также обратите внимание на права доступа к папкам. В папке не должно быть файлов, и не только она должна иметь правильные разрешения, но и родительская папка также должна иметь эти разрешения.   -  person    schedule 26.02.2014


Ответы (1)


Просто попробуйте что-то вроде этого:

$filename = "uploads/$loggedInUser->username$actfolder/";
if (is_dir($filename) === true)
    {
        $files = array_diff(scandir($filename), array('.', '..'));

        foreach ($files as $file)
        {
           unlink(realpath($filename) . '/' . $file);
        }

        rmdir($filename);  //remove directory
    }
person Dinesh    schedule 26.02.2014
comment
удалил другие мои файлы, а не папку:/ - person anmo; 26.02.2014
comment
не беспокойтесь работает только что добавлено :` . ltrim($_GET['file'], '/\\') ` в конце папки назначения из моего кода по умолчанию. - person anmo; 26.02.2014