codeigniter form with image upload

user3463680

I have a field of my form (which is uploading personal picture). So the user selects image from pc and submit the form.

Controller:

function do_upload()
{
    $config['upload_path']   = './images/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size']      = '100000';
    $config['max_width']     = '10240';
    $config['max_height']    = '7680';

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

    if ( ! $this->upload->do_upload())
    {
        $error = array('error' => $this->upload->display_errors());

        $this->load->view('upload_form', $error);
    }
    else
    {
        $data = array('upload_data' => $this->upload->data());
        print_r($this->upload->data());
        $datafoto = $this->upload->data();
        $nm_file = time().$datafoto['orig_name'];
        $this->load->model('mkegiatan');
        $this->mkegiatan->update_foto($nm_file);
        copy('images/'.$datafoto['orig_name'], 'images/'.$nm_file);
    }
}

And contoller edit event like this:

  function edit_kegiatan()
        {

            $id_kegiatan = $this->uri->segment(4);

            //set validation properties

            $this->form_validation->set_rules('tanggal_kegiatan', 'Tanggal', 'required');
            $this->form_validation->set_rules('nama_kegiatan', 'Judul Berita', 'required');
            $this->form_validation->set_rules('content', 'Content', 'required');


            //run validation
            // jika dia ingin update data atau form validation error
            if ($this->form_validation->run() == FALSE) {

                $data  = $this->mkegiatan->get_by_id($id_kegiatan);
                $this->load->model('mkegiatan');
                $config['upload_path'] = './images/';
                $config['allowed_types'] = 'gif|jpg|png';
                $config['max_size'] = '100000';
                $config['max_width']  = '10240';
                $config['max_height']  = '7680';

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

                if ( ! $this->upload->do_upload('userfile'))       //you forgot this
                {
                    $error = array('error' => $this->upload->display_errors());

                    $this->load->view('upload_form', $error);
                }
                else
                {
                    $data = array('upload_data' => $this->upload->data());
                    //print_r($this->upload->data());
                    $datafoto=$this->upload->data();
                    $nm_file = time().$datafoto['orig_name'];
                   $data = array(
                        'tanggal_kegiatan' => $this->input->post('tanggal_kegiatan'),
                        'nama_kegiatan' => $this->input->post('nama_kegiatan'),
                        'content' => $this->input->post('content'),
                        'image' => $nm_file
                );
                $this->mkegiatan->update_kegiatan($id_kegiatan,$data);
                $this->session->set_flashdata('message', generateSuccessMessage('Data berhasil diupdate'));
                redirect(site_url('admin/kegiatan'));
                }
            }

            $this->data['orang'] = $this->mlogin->dataPengguna($this->session->userdata('username'));



            //var_dump($data);
            //$tmp_data = array('id_kegiatan' => $id_kegiatan);

            $this->data['contents'] = $this->load->view('admin/kegiatan/edit_kegiatan', $this->data, true);
            $this->load->view('template/wrapper/admin/wrapper_ukm',$this->data);
    }

View:

<?php echo form_open(current_url(),'name=form'); ?>
                        <div class="fours fields">
                            <div class="field">
                                <div class="ui vertical segment">
                                    <div class="date field">
                                        <label>Tanggal</label>
                                        <div class="ui small icon input left">
                                            <input type="text" id="datepicker" placeholder="xxxx-xx-xx" name="tanggal_kegiatan" value="<?php echo $tanggal_kegiatan;?>"><?php echo form_error('tanggal_kegiatan', '<div class="ui red pointing label">', '</div>'); ?>
                                            <i class="calendar icon"></i>
                                          </div>
                                    </div>
                                </div>
                            </div>
                        </div>

                        <div class="two fields">
                            <div class="field">
                                <label>Nama Acara</label>
                                <div class="ui small left icon input">
                                    <input type="text" placeholder="Nama Kegiatan" name="nama_kegiatan" value="<?php echo $nama_kegiatan;?>"><?php echo form_error('nama_kegiatan', '<div class="ui red pointing label">', '</div>'); ?>
                                    <i class="text file outline icon"></i>
                                </div>
                            </div>
                        </div>

                        <div class="field">
                            <label>Isi Kegiatan</label>
                            <textarea placeholder="Text" name="content">
                                 <?php echo $content;?>
                            </textarea><?php echo form_error('content', '<div class="ui red pointing label">', '</div>'); ?>
                        </div>

                        <input type="file" name="userfile" size="20">

                    <input class="ui small blue submit button" type="submit" value="Save">
                    </form>

Do I need to create two separate forms to accomplish this (one for the image upload and one for the text input)? Or is it possible to write a function in the controller that can validate and process both the upload and text input simultaneously?

Dexter

try this

    function tambah_kegiatan()
{
    //set validation properties
    $this->form_validation->set_rules('nama_kegiatan', 'Judul Berita', 'required');


    if ($this->form_validation->run() == true) 
    {
       $this->load->model('mkegiatan');
        $config['upload_path'] = './images/';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '100000';
        $config['max_width']  = '10240';
        $config['max_height']  = '7680';

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

        if ( ! $this->upload->do_upload('userfile'))       //you forgot this
        {
            $error = array('error' => $this->upload->display_errors());

            $this->load->view('upload_form', $error);
        }
        else
        {
            $data = array('upload_data' => $this->upload->data());
            print_r($this->upload->data());
            $datafoto=$this->upload->data();
            $nm_file = time().$datafoto['orig_name'];
           $data = array(
                'nama_kegiatan' => $this->input->post('nama_kegiatan'),
                'image' => $nm_file
        );

        $this->mkegiatan->insert_kegiatan($data);
        $this->session->set_flashdata('message', generateSuccessMessage('Data berhasil ditambah'));
        redirect(site_url('admin/kegiatan'));
        }


    }

    $this->data['orang'] = $this->mlogin->dataPengguna($this->session->userdata('username'));
    $this->data['contents'] = $this->load->view('admin/kegiatan/tambah_kegiatan', '', true);
    $this->load->view('template/wrapper/admin/wrapper_ukm',$this->data);
}

and your image folder having all permissions

 function edit_kegiatan($id_kegiatan='')
        {



            //set validation properties

            $this->form_validation->set_rules('tanggal_kegiatan', 'Tanggal', 'required');
            $this->form_validation->set_rules('nama_kegiatan', 'Judul Berita', 'required');
            $this->form_validation->set_rules('content', 'Content', 'required');


            //run validation
            // jika dia ingin update data atau form validation error
            if ($this->form_validation->run() == FALSE) {

                $data  = $this->mkegiatan->get_by_id($id_kegiatan);
                $this->load->model('mkegiatan');
                $config['upload_path'] = './images/';
                $config['allowed_types'] = 'gif|jpg|png';
                $config['max_size'] = '100000';
                $config['max_width']  = '10240';
                $config['max_height']  = '7680';

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

                if ( ! $this->upload->do_upload('userfile'))       //you forgot this
                {
                    $error = array('error' => $this->upload->display_errors());

                    $this->load->view('upload_form', $error);
                }
                else
                {
                    $data = array('upload_data' => $this->upload->data());
                    //print_r($this->upload->data());
                    $datafoto=$this->upload->data();
                    $nm_file = time().$datafoto['orig_name'];
                   $data = array(
                        'tanggal_kegiatan' => $this->input->post('tanggal_kegiatan'),
                        'nama_kegiatan' => $this->input->post('nama_kegiatan'),
                        'content' => $this->input->post('content'),
                        'image' => $nm_file
                );
                $this->mkegiatan->update_kegiatan($id_kegiatan,$data);
                $this->session->set_flashdata('message', generateSuccessMessage('Data berhasil diupdate'));
                redirect(site_url('admin/kegiatan'));
                }
            }

            $this->data['orang'] = $this->mlogin->dataPengguna($this->session->userdata('username'));



            //var_dump($data);
            //$tmp_data = array('id_kegiatan' => $id_kegiatan);

            $this->data['contents'] = $this->load->view('admin/kegiatan/edit_kegiatan', $this->data, true);
            $this->load->view('template/wrapper/admin/wrapper_ukm',$this->data);
    }

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Registration form with image upload in Codeigniter

From Dev

Upload form with image in codeigniter using ajax

From Dev

image upload in codeigniter

From Dev

Upload Image with FTP in Codeigniter

From Dev

Image upload is not working in codeigniter

From Dev

image upload in codeigniter

From Dev

Image upload issue in CodeIgniter

From Dev

Codeigniter profile image upload

From Dev

Image upload and view with codeigniter

From Dev

Upload image using codeigniter controller

From Dev

Image upload to specific folder in codeigniter

From Dev

CodeIgniter multiple image upload and resize

From Dev

Codeigniter image resize before upload

From Dev

Upload image using codeigniter controller

From Dev

Codeigniter image upload and path to database

From Dev

CodeIgniter: Upload Image to path and database

From Dev

Upload image it's not working codeigniter

From Dev

CodeIgniter ajax upload image (ajax works, not CodeIgniter)

From Dev

Codeigniter : I am trying to submit form either if user chooses any image to upload or not choose. is it possible?

From Dev

Codeigniter : I am trying to submit form either if user chooses any image to upload or not choose. is it possible?

From Dev

Multipart Form Upload Image and Json

From Dev

upload image in form submit with ajax

From Dev

Upload resized form image to server

From Dev

Select an image form upload table

From Dev

Unable to upload image through form?

From Dev

codeigniter form upload with images using ajax

From Dev

Couldn't upload file in codeigniter text form

From Dev

CodeIgniter, Jquery Ajax, Form Submission and File Upload

From Dev

How can i upload image with ajax in codeigniter?

Related Related

HotTag

Archive