Reputation: 1889
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
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
Reputation: 31
<?php
$path = 'img/imageName.jpg';
if (is_file($path)) {
unlink($path);
} else {
die('your image not found');
}
Upvotes: 0
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
Reputation: 1576
You can delete files in PHP using the unlink()
function.
unlink('path/to/file.jpg');
Upvotes: 33
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
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
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
unlink
- http://php.net/manual/en/function.unlink.php$_POST
- http://php.net/manual/en/reserved.variables.post.phpfile_exists
- http://php.net/manual/en/function.file-exists.phparray_key_exists
- http://php.net/manual/en/function.array-key-exists.phpUpvotes: 73
Reputation: 1805
For deleting use http://www.php.net/manual/en/function.unlink.php Hope you'll can to write logic?
Upvotes: 3