2013-05-26 101 views
1

我有一個問題,當我想刪除與笨一個目錄下的所有文件..刪除所有文件在一個目錄中使用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

你得到任何錯誤? – sakibmoon

回答

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/'); 

或者,如果您要包括子文件夾recursvively

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

這將刪除文件夾/子文件夾中的所有文件,因此如果您想要更多的控制權,您最好使用unlink進行操作,以便決定要刪除的內容。

0

你得到的頁面上或在日誌文件中的錯誤信息?你有沒有檢查文件夾/文件的權限?您可以使用chmodfileperms函數

+0

沒有錯誤信息,只是重定向.. 我試圖重命名該文件夾,但腳本仍然是這樣,並且結果就像繞過代碼「if(is_dir($ path))」.. – fufu

+0

不確定我明白。在任何情況下,刪除重定向並使用屏幕輸出,你是否嘗試打印文件夾/文件的權限?腳本是否進入文件循環? – Lupin

0

它簡單易用..你可以試試這個。

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

foreach($files as $file){ 

if(is_file($file)) 

unlink($file); 

    } 
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]); 
} 
相關問題