Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tải hình ảnh lên khối cơ sở dữ liệu MySQL trong codeigniter

$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);
   } 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự kiện lặp lại vào ngày trong tuần thứ n của mỗi tháng

  2. # 1273 - Đối chiếu không xác định:'utf8mb4_unicode_ci' cPanel

  3. SQL phân tách hàng được phân tách bằng dấu phẩy

  4. Hiệu suất của các thủ tục được lưu trữ đệ quy trong MYSQL để nhận dữ liệu phân cấp

  5. Loại dữ liệu nào để sử dụng cho trường mật khẩu băm và độ dài là bao nhiêu?