2013-02-21 34 views
29

Ho una cartella in cui tengo le mie immagini, denominate img/. Ho una tabella con tutte le mie immagini:elimina l'immagine dalla cartella PHP

<table border="3"> 
    <tr> 
     <td>  
      <?php 
      $files = glob("img/*"); 
      foreach ($files as $file) { 
       echo "<div class='divimages'>"; 
       echo '<img src="'.$file.'"/>'; 
       echo "<input type='submit' value='Delete image'/><br>"; 
       echo "</div>"; 
      } 
      ?> 
     </td> 
    </tr> 
</table> 

Come posso cancellare l'immagine associata al pulsante con il valore: "Delete image".

+0

utilizzando mcryans risposta qui sotto si dovrà ottenere il pulsante per inviare un modulo con il nome del file (s) nei dati post quindi scorrere l'elenco dei nomi dei file e utilizzare la funzione unlink in php. – azzy81

risposta

53

Ci sono alcuni percorsi. Uno, il più semplice, implicherebbe farlo in una forma; quando ti invia reagisci ai dati POST e cancella l'immagine usando unlink

DISCLAIMER: Questo non è sicuro. Un utente malintenzionato potrebbe utilizzare questo codice per eliminare qualsiasi file sul server. È necessario espandere questo codice dimostrativo per aggiungere un po 'di sicurezza, altrimenti si possono aspettare cose negative.

di ogni immagine markup visualizzazione conterrebbe una forma simile a questa:

echo '<form method="post">'; 
    echo '<input type="hidden" value="'.$file.'" name="delete_file" />'; 
    echo '<input type="submit" value="Delete image" />'; 
echo '</form>'; 

... e nella parte superiore di quello stesso file PHP:

if (array_key_exists('delete_file', $_POST)) { 
    $filename = $_POST['delete_file']; 
    if (file_exists($filename)) { 
    unlink($filename); 
    echo 'File '.$filename.' has been deleted'; 
    } else { 
    echo 'Could not delete '.$filename.', file does not exist'; 
    } 
} 
// existing code continues below... 

È possibile elaborare su questo utilizzando javascript: invece di inviare il modulo, è possibile inviare una richiesta AJAX. Il codice lato server sarebbe piuttosto simile a questo.

Documentazione e Lettura relativa

+1

una buona risposta, grazie mille! approvato – emcee22

+1

Nessun problema! Abbi cura di aggiungere alcune misure di sicurezza lì, altrimenti potrebbe finire in lacrime: P.Alcune idee per la sicurezza, a seconda di come la stai usando: requisito della password .htaccess; controllando che il '$ nomefile' si trovi nella cartella dell'immagine prima di cancellarlo; accesso utente basato su sessione; o protezione con password basata su PHP. –

+0

grazie per il consiglio, lo farò di sicuro. Saluti – emcee22

19

È possibile eliminare file in PHP utilizzando la funzione unlink().

unlink('path/to/file.jpg'); 
1

Puoi provare questo codice. Questa è una semplice immagine di PHP che cancella il codice dal server.

<form method="post"> 
<input type="text" name="photoname"> // You can type your image name here... 
<input type="submit" name="submit" value="Delete"> 
</form> 

<?php 
if (isset($_POST['submit'])) 
{ 
$photoname = $_POST['photoname']; 
if (!unlink($photoname)) 
    { 
    echo ("Error deleting $photoname"); 
    } 
else 
    { 
    echo ("Deleted $photoname"); 
    } 
} 
?> 
0

Prima Verifica che l'immagine esista? se sì, basta semplicemente chiamare la funzione di scollegamento (il percorso del file) per rimuovere il file altrimenti mostrare il messaggio all'utente.

   if (file_exists($filePath)) 
       { 
       unlink($filePath); 
        echo "File Successfully Delete."; 
       } 
       else 
       { 
       echo "File does not exists"; 
       } 
Problemi correlati