0

私は両方のタイプのフィールドがあるフォームを持っています。つまり、入力テキスト、ラジオ、選択、テキストエリア、およびファイルアップロードフィールドを意味します。
挿入と編集に同じフォームを使用しています。
私の問題は、ファイルをアップロードしてデータをテーブルに挿入する必要があることです。
コントローラ機能

function myUploadwithInsert(){

if($category    =   $this->input->post())
{
    $this->load->library('form_validation');

    if(!$this->imageUpload()){

            $error = array('error' => $this->upload->display_errors());

            $this->load->view('my_view', $error);

    }else{

        $this->form_validation->set_rules('name', 'Category Title', 'trim|required');

        if ($this->form_validation->run() == TRUE)
        {
            if ($id = $this->categories_model->create($category))
            {
                redirect('admin/categories');
            }
        }else{
            $this->load->view('my_view');
        }           
    }

    }else{

        $this->load->view('my_view');
    }    
} 

public function uploadImage()
{
    $config['upload_path']      = './uploads/';
    $config['allowed_types']    = 'gif|jpg|png|jpeg';
    $config['max_size']     = '100';
    $config['max_width']        = '1024';
    $config['max_height']       = '768';

    $this->load->library('upload', $config);        

    if ( ! $this->upload->do_upload())
    {
        return false;
    }
    else
    {
        $data = $this->upload->data();

        return $data;
    }       

} 

ここで問題となるのは、画像がアップロードされ、フォーム入力エラーフォームが再度表示される場合、ユーザーがフォームフィールドを修正し、画像フィールドに再度入力することです。その後、画像が再度アップロードされます。
最初に入力条件を定義してからアップロードすると、同じ問題が発生します。どうすればこの問題を解決できますか?このタスクを実行する他の方法はありますか?

4

1 に答える 1

0

少し調べた後、私はここで解決策を見つけました

Codeigniterフォーム検証ライブラリの使用

http://codeigniter.com/user_guide/libraries/form_validation.html

http://keighl.com/post/codeigniter-file-upload-validation

素晴らしい記事。私の問題を解決する

于 2012-09-07T12:18:41.940 に答える