0

カスタムフォームバリデータ機能を使用して、画像タイプのファイルがアップロードされているかどうかを確認しています。それは非常に単純ですが、何を試しても、バリデーターに変数を正しく渡すようには見えません。

HTML

<input type="file" name="image" /><div><?php echo form_error('image'); ?></div>

コントローラ

public function postAd(){
    $this->form_validation->set_rules("image", "image", "callback_valid_image");

     if ($this->form_validation->run()==FALSE){
            $this->load->view('header', array('title'=>"Post an ad"));
            $this->load->view('ads/default');
            $this->load->view('footer');
        }else{
            echo "EMPTY";
        }
}

public function valid_image($file){
     echo "RAW:" . $file . "<br />";
     echo "FILE:",$_FILES[$file];
}

form_validation 言語ファイルにもメッセージを設定しました。

入力したファイルの種類に関係なく、または空白のままにした場合、echo "RAW" または echo "FILE" 行にファイルが表示されることはありません。

4

2 に答える 2

1

フォーム検証ライブラリ$_FILES配列には適用されず、にのみ適用され$_POSTます。ファイルアップロードライブラリを使用し、次のようなものを使用する必要があります。

if (!$this->upload->do_upload()){
    $error = array('error' => $this->upload->display_errors());
    $this->load->view('upload_form', $error);
}
else{
    //upload worked.
}
于 2012-10-15T20:49:27.933 に答える
0

独自のカスタム メッセージを設定するには、次の関数を使用します。

$this->form_validation->set_message('rule', 'Message');
于 2012-10-15T23:18:19.880 に答える