Php 使用CodeIgniter将上载图像字段添加到注册表单

Php 使用CodeIgniter将上载图像字段添加到注册表单,php,codeigniter,Php,Codeigniter,我想添加一个上传图像字段来注册表单 我在控制器中的注册码: function add_new_ticket() { if ($this->input->post('fullname', TRUE) && $this->input->post('nID', TRUE) && $this->input->post('age', TRUE) && $this-&

我想添加一个上传图像字段来注册表单

我在控制器中的注册码:

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)
    ){
函数添加新票证(){
如果($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)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->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)upload->do_upload()//添加类似的内容
&&计数(分解('-',$this->input->post('default-date',TRUE))>1)
){
注意:

输入名称必须在$this->upload->do_upload('image')中定义为相同;即name=“image”

输入元素必须有multiple=“multiple”或只有multiple

3.$this->load->library('upload');//加载库

4.回调函数$this->upload->do_upload()将把给定字段名中选择的文件上载到目标文件夹


5.回调$this->upload->data()返回与上载文件相关的数据数组,如文件名、路径、大小等。

在上载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
            }
if(isset($\u FILES['userfile'])&&&&!empty($\u FILES['userfile']['name'])&&&$this->form\u validation->run()!=FALSE)
{
$profile=array(
‘emp_代码’=>this->input->post(‘emp_代码’),
“fname”=>this->input->post('fname'),
'mname'=>this->input->post('mname'),
“lname”=>this->input->post('lname'),
“dob”=>date('Y-m-d',strotime($this->input->post('dob')),
'address'=>this->input->post('address'),
“性别”=>$this->input->post('gender'),
“emp_状态”=>this->input->post(“emp_状态”),
'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\u id'=>this->input->post('tax\u id'),
“日期加入”=>date('Y-m-d',strotime($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);
//插入图像
$sched=数组(
“星期一”=>v1美元,
“星期二”=>v2美元,
“星期三”=>$v3,
“星期四”=>4美元,
“星期五”=>v5美元,
“星期六”=>v6美元,
“星期日”=>$v7,
'date\u From'=>this->input->post('From'),
'date_to'=>this->input->post('to'),
“emp_id”=>$id
);
$this->accounts->insert_emp_sched($sched);
重定向(“账户/查看所有员工”);
}else if(设置($\u文件['userfile'])和空($\u文件['userfile']['name'])和(&$this->form\u validation->run()!=FALSE)
{
$profile=array(
‘emp_代码’=>this->input->post(‘emp_代码’),
“fname”=>this->input->post('fname'),
'mname'=>this->input->post('mname'),
“lname”=>this->input->post('lname'),
“dob”=>date('Y-m-d',strotime($this->input->post('dob')),
'address'=>this->input->post('address'),
“性别”=>$this->input->post('gender'),
“emp_状态”=>this->input->post(“emp_状态”),
'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\u id'=>this->input->post('tax\u id'),
“日期加入”=>date('Y-m-d',strotime($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($p