Удаление файла с использованием php / codeigniter - PullRequest
11 голосов
/ 17 марта 2012

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

localhost/project/folder/file_to_delete

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

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

Ответы [ 9 ]

31 голосов
/ 17 марта 2012

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

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

и так:

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

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

unlink($path); 

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

8 голосов
/ 17 марта 2012

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;
}
6 голосов
/ 28 января 2013

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

unlink($file_name);

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

rmdir($dir);
4 голосов
/ 25 декабря 2014

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

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

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

unlink("./uploads/123.jpg");
2 голосов
/ 17 марта 2012
$file = "test.txt";
if (!unlink($file))
  {
  echo ("Error deleting $file");
  }
else
  {
  echo ("Deleted $file");
  }
0 голосов
/ 10 апреля 2019

просто можно использовать:

$file = "uploads/my_test_file.txt";

if (is_readable($file) && unlink($file)) {
    echo "The file has been deleted";
} else {
    echo "The file was not found";
}
0 голосов
/ 18 ноября 2018

Используйте FCPATH в unlink.Вы можете попробовать, как это работает для меня:

$file_name = $SBLN_ROLL_NO."_ssc";
$file_ext = pathinfo($_FILES['ASSIGNMENT_FILE']['name'],PATHINFO_EXTENSION);

//File upload configuration
$config['upload_path'] = $upload_path;
$config['allowed_types'] = 'jpg|jpeg|png|gif|pdf';
$config['file_name'] = $file_name.'.'.$file_ext;

//First save the previous path for unlink before update
$temp = $this->utilities->findByAttribute('SKILL_DEV_ELEMENT', array('APPLICANT_ID'=>$STUDENT_PERSONAL_INFO->APPLICANT_ID, 'SD_ID'=>$SD_ID));

//Now Unlink
if(file_exists($upload_path.'/'.$temp->ELEMENT_URL))
{
    unlink(FCPATH . $upload_path.'/'.$temp->ELEMENT_URL);
}

//Then upload a new file
if($this->upload->do_upload('file'))
{
    // Uploaded file data
    $fileData = $this->upload->data();
    $file_name = $fileData['file_name'];
}
0 голосов
/ 25 сентября 2018

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

if(unlink(FCPATH . 'uploads/'.$filename)){
    echo "Deleted";
}else{
    echo "Found some error";
}
0 голосов
/ 17 марта 2012

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

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);
    }
}
...