当我想用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');
}
}
答案 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)
答案 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]);
}