PHP:即使文件存在且可写,取消链接也无法删除文件

nic*_*nor 5 php unlink

我一直在试图找出为什么unlink不起作用。我已经尝试过stackoverflow以前的问题和答案,但没有运气。需要删除的确切文件名是'upload/test.png'。首先,我检查文件是否存在。

$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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Yan*_*ang 5

改为提供完整路径,例如

$filename = dirname(__FILE__) . '/upload/test.png';
Run Code Online (Sandbox Code Playgroud)

那就试试这个

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';
}
Run Code Online (Sandbox Code Playgroud)