Codeigniter个人资料图片上传

时间:2017-03-13 09:15:43

标签: php codeigniter codeigniter-3

当我更新其他人正在更新的表格但图像路径消失时,

Codeigniter

表格提交

用户名更新

密码更新

图片网址删除

表格提交

用户名更新

密码更新

不 - >图片网址删除

CONTROLLER

  public function profil_guncelle($id)
      {


        if(!empty($_FILES['avatar']['name'])){
            $config['upload_path'] = 'uploads';
            $config['allowed_types'] = 'jpg|jpeg|png|gif';
             $config['width']     = 150;
             $config['height']   = 50;
            $config['file_name'] = $_FILES['avatar']['name'];


            $this->load->library('upload',$config);
            $this->upload->initialize($config);

            if($this->upload->do_upload('avatar')){
                $uploadData = $this->upload->data();
                $picture = $uploadData['file_name'];
            }else{
                $picture = '';
            }
        }else{
            $picture = '';
        }




        $this->form_validation->set_rules('user_pass', 'Parola', 'trim|required');
        $this->form_validation->set_rules('user_mail', 'E-Posta', 'trim|required');


        if ($this->form_validation->run() == FALSE) {
          $this->session->set_userdata('profil_guncelle', validation_errors());
          $upload_error = array('error' => $this->upload->display_errors());
          redirect(base_url().'admin/users/profil/'.$id);
        }else{

            $data=array(
            'user_pass' => $this->input->post('user_pass'),
            'user_mail' => $this->input->post('user_mail'),
            'avatar' => $picture
            );

            if ($this->Database_Model->profil_guncelle($data, $id) ==true) {
            $this->session->set_flashdata('profil_guncelle', 'Bilgileriniz başarıyla güncellendi.');
            redirect(base_url().'admin/users/profil/'.$id);    
        }
    }
 }

}

数据库模型

public function profil_guncelle($data, $id){
        $this->db->set($data);
        $this->db->where('id', $id);
        if ($this->db->update('users') ===true) {
            return true;
        }else{
            return false;
        }

    }

1 个答案:

答案 0 :(得分:2)

首先设置$picture成为'' if $_FILES['avatar']['name']为空。

比尝试更新数据时

$data=array(
'user_pass' => $this->input->post('user_pass'),
'user_mail' => $this->input->post('user_mail'),
'avatar' => $picture
);

当然,如果图像文件为空,$ picture将设置为''。你更改数组变为:

$data=array(
        'user_pass' => $this->input->post('user_pass'),
        'user_mail' => $this->input->post('user_mail'),
      );
if($picture != ''){
    $data['avatar'] = $picture;
}