$this->input->post('photo')
trong mô hình sẽ không hoạt động để truy xuất thông tin hình ảnh. Vì hình ảnh được lưu trữ trong $ _FILES không phải trong $ _POST. Vì vậy, bạn cần sử dụng thư viện tải lên
trong codeignitor như bên dưới.
public function update_profile() {
$id = $this->session->userdata('id');
$this->load->model('edit_profile_model');
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload', $config);
$this->upload->do_upload();//upload the file to the above mentioned path
$this->edit_profile_model->update_db_user_info($id, $this->upload->data());// pass the uploaded information to the model
}
public function update_db_user_info($id, $imgdata) {
$imgdata = file_get_contents($imgdata['full_path']);//get the content of the image using its path
$data = array(
'fullname' => $this->input->post('fullname'),
'address' => $this->input->post('address'),
'state' => $this->input->post('state'),
'city' => $this->input->post('city'),
'pincode' => $this->input->post('pincode'),
'image' => $imgdata,
);
$this->db->where('id', $id);
$this->db->update('userdetails', $data);
}
Để lấy hình ảnh, hãy viết một hàm trong mô hình như bên dưới.
public function get_image($id){
$this->db->where('id', $id);
$result = $this->db->get('userdetails');
header("Content-type: image/jpeg");
echo $result['image'];
}
Và cũng không phải là một thực tiễn tốt để lưu trữ hình ảnh và truy xuất từ cơ sở dữ liệu. Thay vì điều đó, hãy cố gắng lưu trữ hình ảnh trong một thư mục và lưu trữ đường dẫn trong cơ sở dữ liệu như bên dưới.
public function update_db_user_info($id, $imgdata) {
$imgdata = $imgdata['full_path'];// get the path of the image
$data = array(
'fullname' => $this->input->post('fullname'),
'address' => $this->input->post('address'),
'state' => $this->input->post('state'),
'city' => $this->input->post('city'),
'pincode' => $this->input->post('pincode'),
'image' => $imgdata,// change the type of image from blob to varchar or text
);
$this->db->where('id', $id);
$this->db->update('userdetails', $data);
}