0

データベースに会社を追加するためのフォームがあります。Logo というフィールドを追加しました。ユーザーが会社のロゴをアップロードできるように、このフィールドを使用したいと考えています。フォームで Codeigniter アップロード クラスを使用しています。

私の会社のテーブルは次のようになります。

Companies
---------
id
companyname
address
postalcode
country
email
website
logo

私のフォームはこれに似ています:

<tr>
<td><?= form_label('Bedrijfsnaam:');?></td>
<td><?= form_input('Bedrijfsnaam');?><small> (Spaties niet toegestaan)</small></td>
</tr>

<tr>
<td><?= form_label('Adres:');?></td>
<td><?= form_input('Adres');?></td>
</tr>

<tr>
<td><?= form_label('Postcode:');?></td>
<td><?= form_input('Postcode');?></td>
</tr>

<tr>
<td><?= form_label('Plaats:');?></td>
<td><?= form_input('Plaats');?></td>
</tr>

<tr>
<td><?= form_label('Telefoonnummer:');?></td>
<td><?= form_input('Telefoonnummer');?></td>
</tr>

<tr>
<td><?= form_label('Website:');?></td>
<td><?= form_input('Website');?></td>
</tr>

<tr>
<td><?= form_label('Email:');?></td>
<td><?= form_input('Email');?></td>
</tr>

<tr>
<td><?= form_label('Profiel:');?></td>
<td><?= form_textarea('Profiel');?></td>
</tr>

<tr>
<td><?= form_label('Categorieen:'); ?></td>
<td><?= form_dropdown('categorieen', $opties); ?></td>
</tr>

<tr>
<td><?= form_label('Logo:'); ?></td>
<td><input type="file" name="logo" size="20" /></td>
</tr>

<tr>
<td><?= form_submit('submit', 'Opslaan');?> <?= form_reset('reset', 'Reset');?></td>
</tr>

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

    $data1 = array( 
        'Bedrijfsnaam' => $this->input->post('Bedrijfsnaam'), 
        'Postcode' => $this->input->post('Postcode'), 
        'Plaats' => $this->input->post('Plaats'), 
        'Telefoonnummer' => $this->input->post('Telefoonnummer'), 
        'Email' => $this->input->post('Email'), 
        'Website' => $this->input->post('Website'), 
        'Profiel' => $this->input->post('Profiel'), 
        'Adres' => $this->input->post('Adres'), 
        'logo' => $this->input->post('logo') 
    ); 
    $this->db->insert('bedrijven',$data1); 

これが機能しないことはわかっていますが、これを行う方法がわかりません。

私は別のアップロードフォームを持っていますが、それは画像をアップロードするためのものであり、ロゴのためのものではありません.

アップロード クラスを使用してこれを行う最善の方法は何ですか?


編集:

新しい会社を追加すると、空のフィールドが表示されます。

私のコントローラー:

    function addbedrijven()
    {
        $config['upload_path'] = './assets/uploads/';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '1000';
        $config['max_width']  = '';
        $config['max_height']  = '';
        $config['overwrite'] = TRUE;
        $config['remove_spaces'] = TRUE;

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

        if($this->upload->do_upload('logo')){

        $logo_image_data = $this->upload->data();

        }
        $this->members_model->addbedrijf();
        redirect('members/index');
    }

私のモデル:

    function addbedrijf() 
    { 
        $logo_image_data = $this->upload->data();

        $data1 = array( 
            'Bedrijfsnaam' => $this->input->post('Bedrijfsnaam'), 
            'Postcode' => $this->input->post('Postcode'), 
            'Plaats' => $this->input->post('Plaats'), 
            'Telefoonnummer' => $this->input->post('Telefoonnummer'), 
            'Email' => $this->input->post('Email'), 
            'Website' => $this->input->post('Website'), 
            'Profiel' => $this->input->post('Profiel'), 
            'Adres' => $this->input->post('Adres'), 
            'logo' => $logo_image_data['full_path'] 
        ); 
        $this->db->insert('bedrijven',$data1); 
    }
4

1 に答える 1

0

codeigniter upload同じフォーム内でクラスを使用できます

      $config_logo_image = array(
        'allowed_types' => 'jpg|jpeg|gif|png',
        'upload_path' => UPLOAD_PATH,
        'max_size' => 2000,
        );
    $this->load->library('upload', $config_logo_image );                    
    if($this->upload->do_upload('logo_image')){

    $logo_image_data = $this->upload->data();

    }

そして、$data配列内のこのデータを介して

    $data1 = array( 
    'Bedrijfsnaam' => $this->input->post('Bedrijfsnaam'), 
    'Postcode' => $this->input->post('Postcode'), 
    'Plaats' => $this->input->post('Plaats'), 
    'Telefoonnummer' => $this->input->post('Telefoonnummer'), 
    'Email' => $this->input->post('Email'), 
    'Website' => $this->input->post('Website'), 
    'Profiel' => $this->input->post('Profiel'), 
    'Adres' => $this->input->post('Adres'), 
    'logo' => $logo_image_data ['full_path']  // it is full path of image 
); 
$this->db->insert('bedrijven',$data1); 

'logo' =>$logo_image_data ['file_name'] //only file name

それが理にかなっていることを願っています

于 2013-05-21T10:15:26.150 に答える