Cancellare file con PHP

Mattepuffo's logo
Cancellare file con PHP

Cancellare file con PHP

Per cancellare dei file con PHP basterebbe la funzione unlink().

Facciamo allora dierttamente un passo e vediamo come sia possibile cancellare più insieme.

Supponiamo di avere una pagina che carica tutte le immagini di una determinata cartella.

Nel link postato possiamo vedere come fare a caricare automaticamente le immagini.

Partendo da quello. e apportando qualche modifica, arriviamo a una cosa del genere:

<table>
    <form action="" method="post" enctype="multipart/form-data" name="form_elimina">
        <tr>
            <td>
            </td>
            <td>
                <input type="submit" value="Elimina" name="elimina_img" />
            </td>
        </tr>
        <?php
        $dirname = "../gallery";
        $images = scandir($dirname);
        sort($images);
        foreach ($images as $file) {
            if ((substr($file, -5) == ".jpeg") || (substr($file, -4) == ".jpg") || (substr($file, -5) == ".JPEG") || (substr($file, -4) == ".JPG") || (substr($file, -4) == ".png")) {
                echo <<<HTML
<tr>
<td>
<input type="checkbox" name="check[]" value="$file" />
</td>
<td>
<img src="../gallery/$file" alt="" oncontextmenu="return false;" style="border: 1px solid black;" />
</td>
</tr>
HTML;
            }
        }
        ?>
    </form>
</table>

Abbiamo intabellato la pagina e aggiunto un form e una checkbox.

La riga importante è proprio quella della checkbox; se guardate bene gli ho dato come nome "check[]", con la parentesi, e come valore il nome del file ($file).

Le parentesi sono importanti in quanto è come "se stesse usando un array" (detta in parole povere).

A questo punto quando facciamo il submit del form:

<?php

if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['elimina_img'])) {
    $check = $_POST['check'];
    foreach ($check as $delete) {
        if (unlink("../gallery/" . $delete)) {
            header('location: index.php');
        } else {
            echo 'Errore';
        }
    }
}

Facciamo un ciclo sui valori che ci manda la checkbox.

Per ogni valore trovato usiamo la funzione unlink().

Due cose da tenere a mente:

  • impostate un sistema per il quale l'utente deve essere sicuro di cancellare; la classica finestrella Javascript con scritto "Sei sicuro di voler cancellare i files?"
  • tenete la pagina protetta, sennò chiunque può accederci e cancellare il tutto facendo danni

Ciauz!!


Condividi

Commentami!