1

Codeigniter で 1 つのディレクトリ内のすべてのファイルを削除したい場合、1 つの問題が発生します。

私はチュートリアルを見て試してみましたが、問題が1つだけあります..常にファイルを削除できません。

ここに私のスクリプトがあります:

@見る

<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>

@コントローラ

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

4 に答える 4

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

これにより、フォルダー/サブフォルダー内のすべてのファイルが削除されるため、より細かく制御したい場合は、何を削除するかを決定できるように、リンクを解除して実行することをお勧めします。

于 2013-05-28T11:13:41.340 に答える
0

シンプルで簡単です。これを試すことができます。

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

 foreach($files as $file){ 

 if(is_file($file))

 unlink($file);

  }
于 2014-09-30T12:16:35.970 に答える