使用Codeigniter删除一个目录中的所有文件

时间:2013-05-26 16:27:45

标签: php codeigniter

当我想用Codeigniter删除一个目录中的所有文件时,我遇到了一个问题。

我一直在观看和尝试任何教程,只有一个问题..它总是无法删除任何文件。

这是我的剧本:

@view

<a href="<?php echo base_url()?>sia/delete_allfile" title="Delete All File" onclick="return confirm('Are you sure you want delete all files?')">Delete All File</a>

@Controller

public function delete_allfile()
{
    $files = glob($_SERVER['DOCUMENT_ROOT'].'upload/perizinan/*'); // get all file names
    if(is_dir($path))
    {
        $this->session->set_flashdata('message',
        '
            Wrong directory !
        ');
        redirect('sia/perizinan');
    }else
    {
        foreach($files as $file)
        { // iterate files
            if(is_file($file))
            unlink($file); // delete file
        }
        redirect('sia/perizinan');
    }
}

4 个答案:

答案 0 :(得分:2)

尝试使用Codeigniter的文件助手删除文件。它完全符合您的要求。当然,如果文件夹上的权限错误(它需要权限:rwxrwxrwx(0777)),它将无法工作,但它使代码更简洁,更容易调试。 在控制器的构造函数中添加:

$this->load->helper('file');

并替换:

foreach($files as $file)
    { // iterate files
        if(is_file($file))
        unlink($file); // delete file
    }

delete_files('./path/to/directory/');

或者如果您想要递归地包含子文件夹

delete_files('./path/to/directory/', TRUE);

这会删除文件夹/子文件夹中的所有文件,因此如果您想要更多控制权,最好使用取消链接进行操作,以便您可以决定要删除的内容。

答案 1 :(得分:0)

您是否在页面或日志文件中收到任何错误消息?你检查过文件夹/文件权限了吗?您可以使用chmodfileperms功能

答案 2 :(得分:0)

简单易行..你可以试试这个。

    $files = glob('/home/xxx/public_html/project_name/application/*');

 foreach($files as $file){ 

 if(is_file($file))

 unlink($file);

  }

答案 3 :(得分:0)

它可能会起作用,我用过

$this->load->helper('directory');
$this->load->helper("file");

$dir_fiels = directory_map('resources/captcha/');
$len = sizeOf($dir_fiels);
for($i=0; $i<$len;$i++){
    unlink('resources/captcha/'.$dir_fiels[$i]);
}