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
        }
    }
}
4 голоса | спросил nickanor 11 +04002013-10-11T16:03:03+04:00312013bEurope/MoscowFri, 11 Oct 2013 16:03:03 +0400 2013, 16:03:03

3 ответа


0

Вместо этого укажите полный путь, например

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

Тогда попробуй это,

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';
}
ответил Yang 11 +04002013-10-11T16:23:15+04:00312013bEurope/MoscowFri, 11 Oct 2013 16:23:15 +0400 2013, 16:23:15
0

Если вы говорите, что все в порядке и у вас нет проблем с разрешениями, вы можете попробовать и этот способ:

unlink(realpath("upload/test.png"));
ответил Satyam Saxena 11 +04002013-10-11T16:23:08+04:00312013bEurope/MoscowFri, 11 Oct 2013 16:23:08 +0400 2013, 16:23:08
0

Попробуйте и опубликуйте, какой вывод вы получите (если есть).

$filename = 'upload/test.png';

@unlink($filename);

if(is_file($filename)) {
   echo "file was locked (or permissions error)";
}
ответил BT643 11 +04002013-10-11T16:14:30+04:00312013bEurope/MoscowFri, 11 Oct 2013 16:14:30 +0400 2013, 16:14:30

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132