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

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

localhost/project/folder/file_to_delete

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

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

6 ответов

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

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

и вот так:

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

Late Edit: 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);
 }
}

licensed under cc by-sa 3.0 with attribution.