delete an image from the database folder

Posted on 2010-09-01
Last Modified: 2012-05-10
Hi, I need help once again. This time with deleting images from the 'uploads' database folder.

I have no problems deleting the item from the database but cant find a way of deleting the related image from the folder (../../uploads).

I have looked through some of the solution posted on this site, but cant find a solution as each question in unique.

I have add to my code (attached) but get an error?

$path = '../../uploads/'; //path
           $image= $_POST["image_name"] ;
            //check that the path excsits
            echo "file exists";
            //echo $path;
              echo"file doesnt exist";

error message: Warning: unlink() expects parameter 2 to be resource, string given in C:\xampp\htdocs\WEBSITE\wwwroot\admin\delete_image.php on line 64

The parth is ok, but I dont think im getting thew right image value to be deleted. I can delete the image manually by

$path = '../../uploads/pic1.jpg';

Ian Wells


if(!isset($_SESSION['agent']) or ($_SESSION['agent'] != md5($_SERVER['HTTP_USER_AGENT']))){



        $url = absolute_url();




$page_title = 'Delete Product!';


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"


<html xmlns="">


  <title>delete image</title>




include ('../includes/header.html');


<!--<link rel="stylesheet" href="css/styleSheet.css" type="text/css" />-->


<!-- Start of Container -->

<div id="container">

<!--Header -->

<div align="center" >

<?php # delete_image.php

// This page is for deleting a item record.

// This page is accessed through search_product.php

echo '<b><font color="#993300"><h1>Delete Image...</h1></b>';

// Check for a valid user ID, through GET or POST:

if ( (isset($_GET['id'])) && (is_numeric($_GET['id'])) ) { // From view_users.php

	$id = $_GET['id'];

} elseif ( (isset($_POST['id'])) && (is_numeric($_POST['id'])) ) { // Form submission.

	$id = $_POST['id'];

} else { // No valid ID, kill the script.

	echo '<p class="error">This page has been accessed in error.</p>';

	//include ('includes/footer.html');



// Check if the form has been submitted:

if (isset($_POST['submitted'])) {

	if ($_POST['sure'] == 'Yes') { // Delete the record.

           // Get the user's information:


           $path = '../../uploads/';

           $image= $_POST["image_name"] ;


            echo "file exists";

            //echo $path;



              echo"file doesnt exist";



		// Make the query:

		$q = "DELETE FROM images WHERE$id LIMIT 1";

		$r = @mysqli_query ($mysqli, $q);


		if (mysqli_affected_rows($mysqli) == 1) { // If it ran OK.

			// Print a message:

			echo '<p>The image has been deleted.</p>';

                        echo '<p><a href="search_product.php">Return to Admin</a></p>';

		} else { // If the query did not run OK.

			echo '<p class="error">The imjage could not be deleted due to a system error.</p>'; // Public message.

			echo '<p>' . mysqli_error($mysqli) . '<br />Query: ' . $q . '</p>'; // Debugging message.


	} else { // No confirmation of deletion.

		echo '<p>The image has NOT been deleted.</p>';

        echo '<p><a href="search_product.php">Return to Admin</a></p>';


} else { // Show the form.

	// Retrieve the user's information:

	$q = "SELECT * FROM images WHERE id=$id";

	$r = @mysqli_query ($mysqli, $q);

	if (mysqli_num_rows($r) >=0) { // Valid user ID, show the form.

		// Get the user's information:

		$row = mysqli_fetch_array ($r, MYSQLI_NUM);

// Create the form:

	echo '<form action="delete_image.php" method="post">';

        echo '<h3>Name: ' . $row[1] . '</h3>';

        echo "<img src=\"../../uploads/".$row[2]."\" width=\"80px\" /></br>";

	echo '<p>Are you sure you want to delete this user?<br />';

	echo '<input type="radio" name="sure" value="Yes" /> Yes';

	echo '<input type="radio" name="sure" value="No" checked="checked" /> No</p>';

	echo '<p><input type="submit" name="submit" value="Submit" /></p>';

	echo '<input type="hidden" name="submitted" value="TRUE" />';

	echo '<input type="hidden" name="id" value="' . $id .'" />';

        echo '<input type="hidden" name="image_name" value="' .$row[2].'" />';

	echo '</form>';

	} else { // Not a valid user ID.

		echo '<p class="error">This page has been accessed in error.</p>';


} // End of the main submission conditional.







Open in new window

Question by:irwells
  • 3
LVL 30

Accepted Solution

Marco Gasi earned 500 total points
ID: 33577245
You could simply write:

$image= $_POST["image_name"] ;
$path = '../../uploads/'.$image;

If this doesn't work try to check  $_POST["image_name"]

Best regards
LVL 30

Expert Comment

by:Marco Gasi
ID: 33577500
To chekc if you get the right value for image name, first you can add a simple echo $image;exit(); immediatly after having filled $image varible. You could also post your table structure, so I can try to see if row[2] holds image_name. Your code seems to be correct.

Best regards

Author Comment

ID: 33579220
Thanks marqusG for the quick reply.

I changed

$parth ='../../uploads/';
$parth ='../../uploads/'.$image;

and it works great.

Thank you.
LVL 30

Expert Comment

by:Marco Gasi
ID: 33579313
Glad for helped you. Thanks for points.

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Author Note: Since this E-E article was originally written, years ago, formal testing has come into common use in the world of PHP.  PHPUnit ( and similar technologies have enjoyed wide adoption, making it possib…
These days socially coordinated efforts have turned into a critical requirement for enterprises.
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to count occurrences of each item in an array.

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now