JAVA_RMI
JAVA_RMI

Reputation: 139

Uploading images to database in codeigniter?

I tried searching but no success i want to upload max 5 images to database along with user form data.I have table where all user data of form posted is saved along with images uploaded[image upload is attached with user form] picture fields in database are named as pic1,pic2,pic3.. pic5 + email,password etc I am successfull in uploading image data to database but not images.

//controller

  if ($this->form_validation->run()!=true) {
            $data['countryDrop'] = $this->Country_states_cities->getCountries();  
            $this->load->view('header');
            $this->load->view('register',$data); //Display page
            $this->load->view('footer');
      }else{



            $form=array();
            $form['first_name']=$this->input->post("first_name",true);
            $form['last_name']=$this->input->post("last_name",true);
            $form['dob']=date('Y-m-d',strtotime($this->input->post("dob",true)));       
            $form['email']=$this->input->post("email",true);
            $form['password']=sha1($this->input->post("password",true));
            $form['phone']=$this->input->post("phone",true);
            $form['addline2']=$this->input->post("addressline2",true);
            $form['zip']=$this->input->post("zip",true);


            $result = $this->Couch_reg->insert_new_user($form); //call to model         

//model

function insert_new_user($form)
    {

        $this->db->insert('tbl_usrs',$form);

        if ($this->db->affected_rows() > 0) {

        return true;

        } else {
        return false;
        }


    }

//view

<input type="file" name="uploadfile[]" accept = "image/*" multiple = "multiple" size="20" /> <br />

as we can see model part is very short i want to collect images name in array form and send it to database.

Upvotes: 0

Views: 166

Answers (1)

Rajat
Rajat

Reputation: 21

You need to save the images in the upload folder and save the image name in the database.

<html>
<body>
<form method="POST" action="<?php echo site_url('my-controller/file_upload');?>" 'enctype'=>'multipart/form-data'>
<label for="file">Filename:</label>
<input type="file" name="userfile[]" id="file" multiple>
<input type="submit" value="upload"></form>
</body>
</html>

Then create controller make funtion inside it:

$files = $_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();
                $fileName = $_FILES['userfile']['name'];
                 $images[] = $fileName;

Hope this will help you. For more you can try this: http://w3code.in/2015/09/upload-file-using-codeigniter/

Upvotes: 1

Related Questions