Pregunta

El siguiente código elimina los archivos en una carpeta uploads. Cómo elimino la carpeta también cuando un usuario hace clic en Delete Folder (o similar).

Intenté usar rmdir, pero no estoy recibiendo errores solo en blanco Move.php File.

¿Cuál es la forma correcta / recomendada de hacerlo?Por favor consejo.

    <?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"]);
?>

¿Fue útil?

Solución

Solo prueba algo como esto:

$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
    }

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top