Удаление файла с помощью php/codeigniter

Я хотел бы удалить файл, который находится в моем localhost.

localhost/project/folder/file_to_delete

Я использую codeigniter для этого.

Я хотел бы использовать функцию unlink() в php, но я действительно не могу понять, как ее использовать.

7 ответов


вы можете использовать "файловый помощник" в codeigniter.

http://codeigniter.com/user_guide/helpers/file_helper.html

и такой :

$this->load->helper("file");
delete_files($path);

Поздняя Правка: delete_files метод использует путь, чтобы стереть все его содержимое через unlink() и то же самое вы можете сделать в CI. Вот так:

unlink($path); 

правильный путь.


http://php.net/manual/en/function.unlink.php

Это лучший способ понять. Читай!

$path_to_file = '/project/folder/file_to_delete';
if(unlink($path_to_file)) {
     echo 'deleted successfully';
}
else {
     echo 'errors occured;
}

для удаления файла используйте

unlink($file_name);

или для удаления используйте каталог

rmdir($dir);

попробуйте это, это работает для меня:

unlink("./path/to/folder/file_name_do_delete");

например: я помещаю свой файл в папку uploads, которая находится вне папки приложения, и мое имя файла-123.формат jpg. Так и должно быть:

unlink("./uploads/123.jpg");

$file = "test.txt";
if (!unlink($file))
  {
  echo ("Error deleting $file");
  }
else
  {
  echo ("Deleted $file");
  }

этот код также может обрабатывать непустые папки - просто используйте его в помощнике.

if (!function_exists('deleteDirectory')) {
    function deleteDirectory($dir) {
    if (!file_exists($dir)) return true;
    if (!is_dir($dir) || is_link($dir)) return unlink($dir);
        foreach (scandir($dir) as $item) {
            if ($item == '.' || $item == '..') continue;
            if (!deleteDirectory($dir . "/" . $item)) {
                chmod($dir . "/" . $item, 0777);
                if (!deleteDirectory($dir . "/" . $item)) return false;
            };
        }
        return rmdir($dir);
    }
}

сентября 2018 это решение работает для меня.

if(unlink(FCPATH . 'uploads/'.$filename)){
    echo "Deleted";
}else{
    echo "Found some error";
}