Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP: unlink cannot delete file even the file exists and writable

Tags:

php

unlink

I've been trying to figure out why unlink is not working. I've tried stackoverflow previous questions and answers but no luck. The exact filename that needs to be deleted is 'upload/test.png'. First I made a check if file exists.

$filename = 'upload/test.png';
if(file_exists($filename)){
// file_exists returns true
    if(is_writable($filename)){
        // is_writable also returns true
        if(unlink($filename)){
            echo 'file deleted';
        }
        else{
            echo 'cant delete file';
            print_r(error_get_last());
            // this gives me
            // unlink() function.unlink: No such file or directory
        }
    }
}
like image 821
nickanor Avatar asked Oct 11 '13 12:10

nickanor


2 Answers

Give the full path instead, like

$filename = dirname(__FILE__) . '/upload/test.png';

Then try this,

if (is_file($filename)) {

   chmod($filename, 0777);

   if (unlink($filename)) {
      echo 'File deleted';
   } else {
      echo 'Cannot remove that file';
   }

} else {
  echo 'File does not exist';
}
like image 189
Yang Avatar answered Oct 20 '22 05:10

Yang


If you are saying that everything is ok and no permission issue then you can try this way too:

unlink(realpath("upload/test.png"));
like image 2
Satyam Saxena Avatar answered Oct 20 '22 05:10

Satyam Saxena