I want to add an upload image field to register a form in CodeIgniter.
我想添加一个上传图像字段来注册CodeIgniter中的表单。
My register code in the controller:
我在控制器中的注册码:
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)
){
Also my code in the model file:
我的模型文件中的代码:
<?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');
}
}
I want to add a field that allows to upload images.
我想添加一个允许上传图像的字段。
2 个解决方案
#1
0
I am assuming you want to add "image upload" option in form
我假设您要在表单中添加“图像上传”选项
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);
}
View has something like this
View有类似的东西
<input type="file" name="image" size="20" />
Controller
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)
){
NOTE:
Input name must be be defined as same in $this->upload->do_upload('image'); i.e. name="image"
输入名称必须在$ this-> upload-> do_upload('image')中定义为相同;即name =“image”
Input element must have multiple="multiple" or just multiple
输入元素必须具有多个=“多个”或仅多个
3.$this->load->library('upload'); //to load library
3. $这个 - >负载>库( '上传'); //加载库
4.The callback, $this->upload->do_upload() will upload the file selected in the given field name to the destination folder.
4.回调,$ this-> upload-> do_upload()会将在给定字段名称中选择的文件上传到目标文件夹。
5.And the callback $this->upload->data() returns an array of data related to the uploaded file like the file name, path, size etc.
5.回调$ this-> upload-> data()返回与上传文件相关的数据数组,如文件名,路径,大小等。
#2
0
make an if statement when uploading bro
上传bro时创建一个if语句
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('Y-m-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('Y-m-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('Y-m-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('Y-m-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
}
#1
0
I am assuming you want to add "image upload" option in form
我假设您要在表单中添加“图像上传”选项
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);
}
View has something like this
View有类似的东西
<input type="file" name="image" size="20" />
Controller
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)
){
NOTE:
Input name must be be defined as same in $this->upload->do_upload('image'); i.e. name="image"
输入名称必须在$ this-> upload-> do_upload('image')中定义为相同;即name =“image”
Input element must have multiple="multiple" or just multiple
输入元素必须具有多个=“多个”或仅多个
3.$this->load->library('upload'); //to load library
3. $这个 - >负载>库( '上传'); //加载库
4.The callback, $this->upload->do_upload() will upload the file selected in the given field name to the destination folder.
4.回调,$ this-> upload-> do_upload()会将在给定字段名称中选择的文件上传到目标文件夹。
5.And the callback $this->upload->data() returns an array of data related to the uploaded file like the file name, path, size etc.
5.回调$ this-> upload-> data()返回与上传文件相关的数据数组,如文件名,路径,大小等。
#2
0
make an if statement when uploading bro
上传bro时创建一个if语句
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('Y-m-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('Y-m-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('Y-m-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('Y-m-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
}