ti-enxame.com

excluir imagem da pasta PHP

Eu tenho uma pasta onde guardo minhas imagens, com o nome img/. Eu tenho uma tabela com todas as minhas imagens:

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

Como posso excluir a imagem associada ao botão com o valor: "Delete image".

32
emcee22

Existem algumas rotas. Um, o mais simples, envolveria transformar isso em um formulário; quando envia, você reage aos dados POST e exclui a imagem usando unlink

ISENÇÃO DE RESPONSABILIDADE: isso não é seguro. Um invasor pode usar esse código para excluir qualquer arquivo do seu servidor. Você deve expandir esse código de demonstração para adicionar alguma medida de segurança, , caso contrário, poderá esperar coisas ruins .

A marcação de exibição de cada imagem conteria um formulário semelhante a este:

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

... e na parte superior desse mesmo arquivo 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...

Você pode elaborar isso usando javascript: em vez de enviar o formulário, você pode enviar uma solicitação AJAX. O código do lado do servidor seria bastante semelhante a isso.

Documentação e leituras relacionadas

62
Chris Baker

Você pode excluir arquivos em PHP usando a função unlink() .

unlink('path/to/file.jpg');
23
mcryan

Para excluir o uso http://www.php.net/manual/en/function.unlink.php Espero que você consiga escrever lógica?

3
Winston

Primeiro Verifique se a imagem existe? se sim, basta chamar a função de desvincular (seu caminho de arquivo) para remover seu arquivo; caso contrário, mostre a mensagem ao usuário.

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

Você pode tentar esse código. Isto é Simples PHP Image Excluindo código do servidor.

<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");
  }
}
?>
2
Obaidul Haque
<?php

    require 'database.php';

    $id = $_GET['id'];

    $image = "SELECT * FROM slider WHERE id = '$id'";
    $query = mysqli_query($connect, $image);
    $after = mysqli_fetch_assoc($query);

    if ($after['image'] != 'default.png') {
        unlink('../slider/'.$after['image']);
    }

    $delete = "DELETE FROM slider WHERE id = $id";
    $query = mysqli_query($connect, $delete);

    if ($query) {
        header('location: slider.php');
    }

?>
0
Ahsan Ahmed Rakib