php - Codeigniter Image Gone after re-login in but still saved in database -
i uploaded user photo in database , ('/uploads' folder) , able display everytime logged out when login again image/photo disappears.
logout
public function logout() { $newdata = array( 'id' =>'', 'memberfname' =>'', 'memberlname' =>'', 'email' => '', 'image' => '', 'logged_in' => false, ); $this->session->unset_userdata($newdata ); $this->session->sess_destroy(); $this->home(); } controller
public function editphoto($id){ $data = array( "action" => base_url('/index.php/memberlogincontroller/updatephoto/'.$id), "data" => $this->db->get_where('member',array('id'=>$id)) ); $this->load->view('member/image', $data); } public function upload($id) { if ( (int)$id < 1)//$id not integer { redirect('memberlogincontroller/member_view', 'refresh'); } $this->load->helper(array('form','file','url')); $this->load->library('form_validation'); $config_image = array( 'upload_path' => './uploads/', 'allowed_types' => 'gif|jpg|png', 'max_size' => '1024', 'overwrite' => true // 'max_width' => '1024', // 'max_height' => '768', ); $this->load->library('upload', $config_image); if($this->form_validation->run()==false , empty($_files['userfile']['name'][0])) { $error = array( 'error_image' => 'please choose image upload', ); $this->load->view('member/image', $error); }elseif($this->form_validation->run()==true , empty($_files['userfile']['name'][0])){ $error = array( 'error_image' => 'please choose image upload', ); $this->load->view('member/image', $error); }elseif($this->form_validation->run()==false , !empty($_files['userfile']['name'][0])){ !$this->upload->data(); $error = array( 'error_image' => '', ); $this->load->view('member/image', $error); }elseif($this->form_validation->run()==true , !empty($_files['userfile']['name'][0])){ $this->upload->do_upload(); $data = array('upload_data' => $this->upload->data()); $this->image->resize($data['upload_data']['full_path'], $data['upload_data']['file_name']); $profile = array( 'image' => $data['upload_data']['file_name'] ); $this->db->update('member',$profile,array('id'=>$id)); $this->session->set_userdata($profile); redirect('index.php/memberlogincontroller/getmember/'.$id, 'refresh'); } } public function image_resize($path,$file){ $config_resize=array( 'image_library' => 'gd2', 'source_image' => $path, 'maintain_ratio' => true, 'width'=> 75, 'height'=>50, 'new_image'=>'./uploads/thumb/'.$file ); $this->load->library('image_lib',$config_resize); $this->image_lib->resize(); } public function updatephoto($id){ if ((int)$id < 1)//$id not integer { redirect('memberlogincontroller/member_view', 'refresh'); } else{ $this->load->helper(array('form','file','url')); $this->load->library('form_validation'); $config_image = array( 'upload_path' => './uploads/', 'allowed_types' => 'gif|jpg|png', 'max_size' => '1024', 'overwrite' => true // 'max_width' => '1024', // 'max_height' => '768', ); $this->load->library('upload', $config_image); if($this->form_validation->run()==false , empty($_files['userfile']['name'][0])) { $id = $this->session->userdata('id'); $memberinfo = array( 'error_image' => '', ); $this->load->model('memberloginmodel'); $memberinfo['memberinfo'] = $this->memberloginmodel->getmember($id); $this->load->view('member/image',$memberinfo); } else { $this->upload->do_upload(); $data = array('upload_data' => $this->upload->data()); $this->image_resize($data['upload_data']['full_path'], $data['upload_data']['file_name']); $id = $this->session->userdata('id'); $this->db->where('id', $id); $query = $this->db->get('member'); /* foreach($query->result() $row) { unlink('./uploads/'.$row->image); unlink('./uploads/thumb/'.$row->image); } */ $data = array( 'image' => $data['upload_data']['file_name'] ); $this->db->update('member',$data,array('id'=>$id)); $this->session->set_userdata($data); redirect('index.php/memberlogincontroller/getmember/'.$id, 'refresh'); } } } model
class memberloginmodel extends ci_model{ public function __construct() { parent::__construct(); $this->load->helper(array('url','html','form')); } function login() { $this->db->where('email',$this->input->post('email')); $this->db->where('password', md5($this->input->post('password'))); $query = $this->db->get('member'); /*i added 'member' table on db new members*/ if($query->num_rows()>0) { foreach($query->result() $rows) { //add data session $newdata = array( 'id' => $rows->id, 'memberfname' => $rows->memberfname, 'memberlname' => $rows->memberlname, 'email' => $rows->email, 'logged_in' => true ); } $this->session->set_userdata($newdata); return true; }else{ return false; } } public function add_user() { $data = array( 'memberfname'=>$this->input->post('memberfname'), 'memberlname'=>$this->input->post('memberlname'), 'email'=>$this->input->post('email'), 'password'=>md5($this->input->post('password')), ); $this->db->insert('member',$data); } public function getmember($id) { $this->db->where('id', $id); $query = $this->db->get('member'); if ($query->num_rows() !== 1) { return false; } return $query->row(); } upload image view
<form action="<?php echo $action;?>" method="post" enctype="multipart/form-data"> // echo $action, refer memberlogincontroller/editphoto <a href="#"><img height="200px" width="200px"src="<?php echo base_url().'/uploads/'.$this->session->userdata('image'); ?>"> <input type="file" name="userfile" /> <br /><br /> <input type="hidden" name="id" value="<?php echo $this->session->userdata('id'); ?>"/> <input type="submit" name="submit" id="submit" class="btn btn-primary" value="upload" /> </form> userprofile view page
<div class="description"> <!-- <a href="#"><img height="200px" width="200px" src="<php echo base_url();?>uploads/no-avatar.jpg"></a>--> <a href="#"><img height="200px" width="200px"src="<?php echo base_url().'/uploads/'.$this->session->userdata('image'); ?>"> </div>
$this->session->userdata('image') is not set yet in $this->session->set_userdata($newdata);!
foreach($query->result() $rows) { //add data session $newdata = array( 'id' => $rows->id, 'memberfname' => $rows->memberfname, 'memberlname' => $rows->memberlname, 'email' => $rows->email, 'logged_in' => true ); } in $newdata should add 'image'
Comments
Post a Comment