emcee22
emcee22

Reputation: 1889

delete image from folder PHP

I have a folder where I keep my images, named img/. I have a table with all of my images:

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

How can I delete the image associated to the button with the value:"Delete image".

Upvotes: 40

Views: 193537

Answers (8)

Lepy
Lepy

Reputation: 194

For anyone wanting to delete all .png files starting from current directory, I've created a small script. It iterates over all available folders (one level only), searches for all .png file and deletes them:

$dirs = array_filter(glob('*'), 'is_dir');

foreach ($dirs as $directory) {
    $images = glob($directory . "/*.png");

    foreach ($images as $image) {
        echo "DELETING: " . $image . "<br>";
        unlink($image);
    }
}

if the script is located in app folder (app/index.php) it will search (one level) in all app/{folderName} for .png files and delete them. You can change the .png to .jpg or what you need.

Upvotes: 0

amirreza sharifi
amirreza sharifi

Reputation: 31

<?php
$path = 'img/imageName.jpg';
if (is_file($path)) {
    unlink($path);
} else {
    die('your image not found');
}

Upvotes: 0

Ahsan Ahmed Rakib
Ahsan Ahmed Rakib

Reputation: 11

<?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');
    }

?>

Upvotes: 1

mcryan
mcryan

Reputation: 1576

You can delete files in PHP using the unlink() function.

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

Upvotes: 33

Wajid khan
Wajid khan

Reputation: 872

First Check that is image exists? if yes then simply Call unlink(your file path) function to remove you file otherwise show message to the user.

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

Upvotes: 5

Obaidul Haque
Obaidul Haque

Reputation: 950

You can try this code. This is Simple PHP Image Deleting code from the 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");
  }
}
?>

Upvotes: 2

Chris Baker
Chris Baker

Reputation: 50592

There are a few routes. One, the most simple, would involve making that into a form; when it submits you react to POST data and delete the image using unlink

DISCLAIMER: This is not secure. An attacker could use this code to delete any file on your server. You must expand on this demonstration code to add some measure of security, otherwise you can expect bad things.

Each image's display markup would contain a form something like this:

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

...and at at the top of that same PHP file:

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

You can elaborate on this by using javascript: instead of submitting the form, you could send an AJAX request. The server-side code would look rather similar to this.

Documentation and Related Reading

Upvotes: 73

Winston
Winston

Reputation: 1805

For deleting use http://www.php.net/manual/en/function.unlink.php Hope you'll can to write logic?

Upvotes: 3

Related Questions