0

複数の画像をアップロードするアップロード スクリプトを作成しました。これはうまく機能していますが、ファイル名をデータベースに追加したいと考えています。

私の問題は、最後にアップロードされた画像のみがデータベースに追加されることです。これは、データ配列をコントローラーからモデルに渡す方法がわからないためです。

アップロードするコードは次のようになります (コントローラー):

public function aanbiedingenadd() //functie om ze toe te voegen aan de database
{       
    $files = $_FILES;
    echo '<pre>';
    print_r($files);
    $cpt = count($_FILES['userfile']['name']);
    for($i=0; $i<$cpt; $i++)
    {

        $_FILES['userfile']['name']= $files['userfile']['name'][$i];
        $_FILES['userfile']['type']= $files['userfile']['type'][$i];
        $_FILES['userfile']['tmp_name']= $files['userfile']['tmp_name'][$i];
        $_FILES['userfile']['error']= $files['userfile']['error'][$i];
        $_FILES['userfile']['size']= $files['userfile']['size'][$i];    

        $this->upload->initialize($this->set_upload_options());
        $this->upload->do_upload();
        $image_data = $this->upload->data();
    }
    print_r($image_data);
    print_r($this->upload->display_errors());
    $this->aanbieding_model->addaanbieding($image_data);
    redirect("members/aanbiedingen");
}

print_r($files)アップロードされたすべてのファイルをサイズ、幅、高さなどとともに表示します。

print_r($image_data);最後にアップロードされた画像のみを表示します。

私のモデルは次のようになります。

        $insert_data = array(
            'fotonaam' => $image_data['file_name']
        );
        print_r($insert_data);
        die;
        $input = $this->input->post('userfile');
        if(isset($input)){
            $this->db->insert('fotoaanbiedingen', $insert_data);
        }else{
            return FALSE;
        }

print_r($insert_data);私に見せて

Array
(
    [fotonaam] => 'nameoflastuploadedimage'
)

これを配列に追加して、1つずつ追加するにはどうすればよいですか?

4

3 に答える 3

0

このような関数を作成してください:-

public function fileUpload(&$uploadFileData,$field)
{
    $config1['allowed_types'] = 'gif|jpg|jpeg|png';
    $config1['upload_path']     = ABSOLUTEPATH.'category/original/';
    $config1['optional']        = true;
    $config1['max_size']        = '0';
    $config1['max_width']       = '00';
    $this->load->library('upload', $config1);
    if (!$this->upload->do_upload($field,true))
    {
        $error = array('error' => $this->upload->display_errors());
        $r = $error;
    }
    else
    {
        $data = array('upload_data' => $this->upload->data());
        $r = "sucess";
    }
    $uploadFileData[$field] = $this->upload->file_name;
    return $r;
}

そして、次のように呼び出します:-

    $field = 'userfile';
    $uploadFileData = array();
    $uploadFileData[$field.'_err'] = '';
    $isUploaded = $this->fileUpload($uploadFileData,$field);
    if($isUploaded != "sucess")
     {
     echo "error";
    }
    else
    {
    $imagename = $uploadFileData[$field];
    }
于 2013-07-25T09:05:52.787 に答える