Добавить поле для загрузки в регистровую форму с помощью CodeIgniter

Я хочу добавить поле для загрузки изображения, чтобы зарегистрировать форму в CodeIgniter .

Мой регистрационный код в контроллере:

function add_new_ticket() { if ($this->input->post('fullname', TRUE) && $this->input->post('nID', TRUE) && $this->input->post('age', TRUE) && $this->input->post('gender', TRUE) // && $this->input->post('isFileID', TRUE) // && $this->input->post('FileID', TRUE) && $this->input->post('phone', TRUE) && $this->input->post('type', TRUE) && $this->input->post('opsType', TRUE) && $this->input->post('clienc', TRUE) && $this->input->post('dr', TRUE) && strlen($this->input->post('phone', TRUE)) >= 9 && strlen($this->input->post('nID', TRUE)) >= 9 && (int) $this->input->post('age', TRUE) <= 99 && count(explode('-',$this->input->post('default-date', TRUE)) > 1) ){ 

Также мой код в файле модели:

 <?php class user extends CI_Model { public function add() { $data = array( 'name' => $this->input->post('name'), 'password' => $this->input->post('password'), 'add_date' => time(), 'email' => $this->input->post('email'), 'birth_date' => $this->input->post('birth'), 'phone' => $this->input->post('phone'), 'mobile' => $this->input->post('mobile'), 'sex' => $this->input->post('type'), 'city' => $this->input->post('city'), 'first_name' => $this->input->post('first_name'), 'last_name' => $this->input->post('last_name'), 'main_street' => $this->input->post('main_street'), 'sub_street' => $this->input->post('sub_street'), 'type' => $this->input->post('member_type'), 'delegate_name' => $this->input->post('delegate_name'), 'delegate_email' => $this->input->post('delegate_email'), 'delegate_pass' => md5($this->input->post('delegate_pass')), 'location' => serialize(array($this->input->post('lat'), $this->input->post('lng'))) ); $this->db->insert('admins', $data); } public function edit($id = FALSE) { $this->db->set('name', $this->input->post('name')); $this->db->set('email', $this->input->post('email')); $this->db->set('phone', $this->input->post('phone')); $this->db->set('mobile', $this->input->post('mobile')); $this->db->set('birth_date', $this->input->post('birth')); $this->db->set('first_name', $this->input->post('first_name')); $this->db->set('last_name', $this->input->post('last_name')); $this->db->set('city', $this->input->post('city')); $this->db->set('main_street', $this->input->post('main_street')); $this->db->set('sub_street', $this->input->post('sub_street')); if ($this->input->post('type')) { $this->db->set('sex', $this->input->post('type')); } if ($this->input->post('lat') and $this->input->post('lng')) { $this->db->set('location', serialize(array($this->input->post('lat'), $this->input->post('lng')))); } if ($this->input->post('password') !== '') { $this->db->set('password', md5($this->input->post('password'))); } $this->db->where('id', $id); $this->db->update('admins'); } public function del($id = FALSE) { $this->db->where('id', $id); $this->db->delete('admins'); } } 

Я хочу добавить поле, которое позволяет загружать изображения.

Я предполагаю, что вы хотите добавить опцию «загрузка изображения» в форме

 public function add() { /* Configuration array various settings can be set here **/ $config['upload_path'] = '/file_path/'; // path where image will be saved $config['allowed_types'] = 'gif|jpg|png|jpeg'; $this->load->library('upload', $config); $this->upload->do_upload('image'); $data_upload_files = $this->upload->data(); $image = $data_upload_files[full_path]; $data = array( 'name' => $this->input->post('name'), 'password' => $this->input->post('password'), 'add_date' => time(), 'email' => $this->input->post('email'), 'birth_date' => $this->input->post('birth'), 'phone' => $this->input->post('phone'), 'mobile' => $this->input->post('mobile'), 'sex' => $this->input->post('type'), 'city' => $this->input->post('city'), 'first_name' => $this->input->post('first_name'), 'last_name' => $this->input->post('last_name'), 'main_street' => $this->input->post('main_street'), 'sub_street' => $this->input->post('sub_street'), 'type' => $this->input->post('member_type'), 'delegate_name' => $this->input->post('delegate_name'), 'delegate_email' => $this->input->post('delegate_email'), 'delegate_pass' => md5($this->input->post('delegate_pass')), 'location' => serialize(array($this->input->post('lat'), $this->input->post('lng'))) 'image'=>$image; // add this for image ); $this->db->insert('admins', $data); } 

У вида есть что-то вроде этого

 <input type="file" name="image" size="20" /> 

контроллер

 function add_new_ticket() { if ($this->input->post('fullname', TRUE) && $this->input->post('nID', TRUE) && $this->input->post('age', TRUE) && $this->input->post('gender', TRUE) // && $this->input->post('isFileID', TRUE) // && $this->input->post('FileID', TRUE) && $this->input->post('phone', TRUE) && $this->input->post('type', TRUE) && $this->input->post('opsType', TRUE) && $this->input->post('clienc', TRUE) && $this->input->post('dr', TRUE) && strlen($this->input->post('phone', TRUE)) >= 9 && strlen($this->input->post('nID', TRUE)) >= 9 && (int) $this->input->post('age', TRUE) <= 99 && $this->upload->do_upload() // add something like this && count(explode('-',$this->input->post('default-date', TRUE)) > 1) ){ 

ЗАМЕТКА:

Имя ввода должно быть определено как одно значение в $ this-> upload-> do_upload ('image'); т.е. name = "image"

Элемент ввода должен иметь несколько = «несколько» или просто несколько

3. $ this-> load-> библиотека ( 'загрузка'); // для загрузки библиотеки

4. Обратный вызов, $ this-> upload-> do_upload () выгрузит файл, выбранный в заданном поле, в папку назначения.

5. И обратный вызов $ this-> upload-> data () возвращает массив данных, относящихся к загруженному файлу, например имя файла, путь, размер и т. Д.

сделать заявление if при загрузке bro

 if(isset($_FILES['userfile']) && !empty($_FILES['userfile']['name']) && $this->form_validation->run() != FALSE) { $profile = array( 'emp_code' => $this->input->post('emp_code'), 'fname' => $this->input->post('fname'), 'mname' => $this->input->post('mname'), 'lname' => $this->input->post('lname'), 'dob' => date('Ym-d',strtotime($this->input->post('dob'))), 'address' => $this->input->post('address'), 'gender' => $this->input->post('gender'), 'emp_status' => $this->input->post('emp_status'), 'position' => $this->input->post('position'), 'dep_id' => $this->input->post('dep_id'), 'payroll_num' => $this->input->post('pay_num'), 'tax_code_id' => $this->input->post('tax_code'), 'tax_id' => $this->input->post('tax_id'), 'date_joined' => date('Ym-d',strtotime($this->input->post('doj'))), 'sss_num' => $this->input->post('sss_num'), 'PhilHealth_num' => $this->input->post('PhilHealth_num'), 'pagibig_num' => $this->input->post('pagibig_num'), 'image'=> $info['file_name'] ); $id = $this->accounts->insert_employee($profile); //insert with image $sched = array( 'Monday'=>$v1, 'Tuesday'=>$v2, 'Wednesday'=>$v3, 'Thursday'=>$v4, 'Friday'=>$v5, 'Saturday'=>$v6, 'Sunday'=>$v7, 'date_From'=>$this->input->post('from'), 'date_to'=>$this->input->post('to'), 'emp_id'=> $id ); $this->accounts->insert_emp_sched($sched); redirect('account/view_all_employee'); }else if(isset($_FILES['userfile']) && empty($_FILES['userfile']['name']) && $this->form_validation->run() != FALSE) { $profile = array( 'emp_code' => $this->input->post('emp_code'), 'fname' => $this->input->post('fname'), 'mname' => $this->input->post('mname'), 'lname' => $this->input->post('lname'), 'dob' => date('Ym-d',strtotime($this->input->post('dob'))), 'address' => $this->input->post('address'), 'gender' => $this->input->post('gender'), 'emp_status' => $this->input->post('emp_status'), 'position' => $this->input->post('position'), 'dep_id' => $this->input->post('dep_id'), 'payroll_num' => $this->input->post('pay_num'), 'tax_code_id' => $this->input->post('tax_code'), 'tax_id' => $this->input->post('tax_id'), 'date_joined' => date('Ym-d',strtotime($this->input->post('doj'))), 'sss_num' => $this->input->post('sss_num'), 'PhilHealth_num' => $this->input->post('PhilHealth_num'), 'pagibig_num' => $this->input->post('pagibig_num'), ); $id = $this->accounts->insert_employee($profile); //insert without image $sched = array( 'Monday'=>$v1, 'Tuesday'=>$v2, 'Wednesday'=>$v3, 'Thursday'=>$v4, 'Friday'=>$v5, 'Saturday'=>$v6, 'Sunday'=>$v7, 'date_From'=>$this->input->post('from'), 'date_to'=>$this->input->post('to'), 'emp_id'=> $id ); $this->accounts->insert_emp_sched($sched); $this->session->set_flashdata('item','The Newly added Employee Dose\'nt have a Profile Pic <a href="view_employee/'.$id.'">View The User</a>'); redirect('account/view_all_employee'); }else{ $data['emp_status'] = array('Part-Time' => 'Part-Time','Regular' => 'Regular', 'Probationary' => 'Probationary' ); $data['gender'] = array('male' => 'Male','female'=>'Female' ); $this->load->view('employee/create',$data); //error in form validation }