sql >> Database >  >> RDS >> Mysql

Afbeelding uploaden naar MySQL-database-blob in codeigniter

$this->input->post('photo') in model zal niet werken om de afbeeldingsinformatie op te halen. Omdat de afbeeldingen worden opgeslagen in $_FILES niet in $_POST. U moet dus de uploadbibliotheek gebruiken in codeignitor zoals hieronder.

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

Om de afbeelding op te halen, schrijft u een functie in het model zoals hieronder.

public function get_image($id){
       $this->db->where('id', $id);
       $result = $this->db->get('userdetails');
       header("Content-type: image/jpeg");
       echo $result['image'];
}

En het is ook geen goede gewoonte om de afbeelding op te slaan en uit de database op te halen. Probeer in plaats daarvan de afbeelding in een map op te slaan en het pad in de database op te slaan zoals hieronder.

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. MySQL PHP-incompatibiliteit

  2. Wat betekent Tabel niet optimaliseren, in plaats daarvan opnieuw maken + analyseren?

  3. Een tabel draaien in SQL (d.w.z. kruistabel / kruistabel)

  4. Een primaire sleutel maken in SQL Server (T-SQL-voorbeelden)