Удаление файла с помощью 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";
}