Welcome Guest, Not a member yet? Register   Sign In
File Upload & data entry using the File Uploading Class
#1

[eluser]Unknown[/eluser]
I am developing a form that allows the user to upload images as well as data. I have built forms before but am trying to integrate the file uploading class with my form upload controller.

Below is the Controller, Model & Form from my View, can anyone help me tie up the missing link? I have searched all over & not found a solution:

Controller:
Code:
class Canvas extends CI_Controller {

           private $upload_error = '';

function __construct() {
  parent::__construct();
                      $this->load->helper(array('form', 'url'));

}

function index() {
                $vars = array();
                $this->load->library('FacebookConnect');
                $facebook=$this->facebookconnect->connect();
                $vars['facebook'] = $facebook;
                $user = $vars['user'] = $facebook->getUser();
                $this->load->model('Users_Model');
                if($user != 0  && sizeof($_POST)>0) {
                    $this->iterate_profile ($vars['user'],false,$_POST);
                    $this->do_upload();
                } else {
                    $this->load->view('canvas',$vars);
                }
                
}
        function do_upload()
        {
            $config['upload_path'] = './uploads/';
            $config['allowed_types'] = 'gif|jpg|png';
            $config['max_size'] = '100';
            $config['max_width']  = '1024';
            $config['max_height']  = '768';

            $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());

                $this->load->view('upload_success', $data);
            }
        }

        function thank_you() {
                $this->load->view('thank_you',$vars);
        }
        
        function remove() {
                $vars = array();
                $this->load->library('FacebookConnect');
                $facebook=$this->facebookconnect->connect();
                $vars['facebook'] = $facebook;
                $vars['user'] = $facebook->getUser();
                $this->load->model('Users_Model');
                if($vars['user'] == 0) {
                    // user not set, redirect
                    redirect('/', 'refresh');
                } else {
                    // user already set up. Remove
                    $this->load->model('Users_Model');
                    $this->Users_Model->remove($vars['user']);
                }
                
                $this->load->view('removed',$vars);
        }
        
        protected function iterate_profile ($user,$breadcrumb,$item) {

            foreach($item as $key => $value) {
                if(is_array($value)) {
                    $this->iterate_profile($user,$key,$value);
                }
                else {
                    if($breadcrumb) {
                        //echo '[' . $breadcrumb . '_' . $key . ']= ' . $value . ' <br />';
                        $key = $breadcrumb . '_' . $key;
                    }

                    if( ! $this->Users_Model->exists($user,$key)) {
                        // does not exist in the database, insert it
                        $this->Users_Model->add($user,$key,$value);
                    } else {
                        $this->Users_Model->update($user,$key,$value);
                    }
                }
            }
        }
Model:
Code:
class Users_Model extends CI_Model {
    protected $_name = 'users';
    
    function add($id,$key,$value) {
        $data = array(
           'id' => $id,
           'name' => $key,
           'value' => $value
        );

        return $this->db->insert($this->_name, $data);
    }
    function update($id,$key,$value) {
        $data = array(
           'value' => $value
        );

        $this->db->where(array(
           'id' => $id,
           'name' => $key
        ));
        return $this->db->update($this->_name, $data);
    }
    
    function exists($id,$key=null) {
        if($key == null) {
            $this->db->where(array(
            'id' => $id
            ));
        } else {
            $this->db->where(array(
            'id' => $id,
            'name' => $key
            ));  
        }

        $query = $this->db->get($this->_name);
        if($query->num_rows() > 0) {
            return true;
        }
        return false;
    }
    
    function remove($id) {
        $data = array(
           'id' => $id,
        );
        
        return $this->db->delete($this->_name, $data);
    }
    
    function all() {
        $query = $this->db->get($this->_name);
        $results = array();
        if($query->num_rows() > 0) {
            foreach($query->result() as $row) {
                $results[]=$row;
            }
        }
        return $results;  
    }
    
}

Code:
&lt;form id="form" name="input" action="./" method="post" accept-charset="utf-8" enctype="multipart/form-data"&gt;
              <table>
                    <tr><td><b class="ara">XXXXXXXX</b> &lt;input id="name" type="text" name="uid" value="" size="30"&gt;&lt;/td></tr>
                    <tr><td><b class="ara">XXXXXXXX</b>&lt;input id="dob" type="text" name="date_of_birth" value="" size="30"&gt;&lt;/td></tr>
                    <tr><td>&lt;input type="file" name="userfile" class="upload" size="30"/&gt;&lt;/td></tr>
                    <tr><td><span class="ara tandc">XXXXXXXX</span></td><td>&lt;input id="checkme" type="checkbox" class="check" name="Check me" value="Submit"/&gt;&lt;/td></tr>
                    <tr><td><b>&lt;input type="button" class="btn" id="send" name="Add me" value="Submit"/&gt;&lt;/td></tr>
              </table>
&lt;/form&gt;

Any help much appreciated.
#2

[eluser]Sagar Ratnaparkhi[/eluser]
Not sure what the problem you are facing... but One issue i found, form should have input type="submit" instead of button.
it would be great if you elaborate problem.




Theme © iAndrew 2016 - Forum software by © MyBB