Я хочу загрузить изображение в базу данных mysql для хранения большого количества информации. Я приложил код 3 (MVC) для вашей справки и, пожалуйста, помогите мне.
ref: http://forum.codeigniter.com/thread-1205.html
Мне нужно загрузить много изображений в базу данных в виде blob в codeigniter. Я написал просмотр, контроллер и модель, все данные загружаются, но изображение не сохраняется.
Также представьте, как показать изображение в кодеигниторе.
$this->input->post('photo')
в модели не будет работать для получения информации об изображении. Поскольку изображения хранятся в $ _FILES не в $ _POST. Таким образом, вам нужно использовать библиотеку загрузки в codeignitor, как показано ниже.
В контроллере:
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); }
Чтобы получить изображение, напишите функцию в модели, как показано ниже.
public function get_image($id){ $this->db->where('id', $id); $result = $this->db->get('userdetails'); header("Content-type: image/jpeg"); echo $result['image']; }
А также не очень хорошая практика хранения изображения и извлечения из базы данных. Вместо этого попытайтесь сохранить изображение в папке и сохраните путь в базе данных, как показано ниже.
В модели:
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); }