Как загрузить путь и имя изображения в базу данных – Codeigniter

Я знаю, что этот вопрос задавали несколько раз, но весь другой вопрос, который я нашел, отличается от того, что я хочу.

Я хочу загрузить имя файла и путь к файлу с именем «factoryimages».

Каков наилучший способ сделать это?

Моя функция контроллера:

function do_upload() { $config['upload_path'] = './assets/uploads/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = '1000'; $config['max_width'] = ''; $config['max_height'] = ''; $config['overwrite'] = TRUE; $config['remove_spaces'] = TRUE; $this->load->library('upload', $config); if ( ! $this->upload->do_upload()) { $error = array('error' => $this->upload->display_errors()); $this->load->view('members/header'); $this->load->view('members/upload_form', $error); $this->load->view('members/footer'); } else { $data = array('upload_data' => $this->upload->data()); $this->load->view('members/header'); $this->load->view('members/upload_success', $data); $this->load->view('members/footer'); } } 

Я попробовал это в своей модели, но это не сработало:

 function insert_images() { $insert_data = array( 'filename' => $image_data['file_name'], 'fullpath' => $image_data['full_path'] ); $this->db->insert('bedrijfimages', $insert_data); } 

Мой взгляд:

 <?php echo $error;?> <br/> <?php echo form_open_multipart('upload/do_upload');?> <input type="file" name="userfile" size="20" multiple="true" /> <br /><br /> <input type="submit" value="upload" /> </form> 

Редактировать:

Я получаю ошибку сервера, но я не вижу, что это такое.

Моя функция контроллера:

 function do_upload() { $config['upload_path'] = './assets/uploads/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = '1000'; $config['max_width'] = ''; $config['max_height'] = ''; $config['overwrite'] = TRUE; $config['remove_spaces'] = TRUE; $this->load->library('upload', $config); if ( ! $this->upload->do_upload()) { $error = array('error' => $this->upload->display_errors()); $this->upload_model->insert_images($this->upload->data()); $this->load->view('members/header'); $this->load->view('members/upload_form', $error); $this->load->view('members/footer'); } else { $data = array('upload_data' => $this->upload->data()); $this->load->view('members/header'); $this->load->view('members/upload_success', $data); $this->load->view('members/footer'); } } 

Моя модельная функция:

 function insert_images($data = array()) { $data = array( 'filename' => $image_data['file_name'], 'fullpath' => $image_data['full_path'] ); $this->db->insert('bedrijfimages', $data); } 

В чем может быть проблема?

Вы должны передать эти данные в свою вставку в виде массива $this->upload->data()

На вашем контроллере вы должны установить, когда выполняется проверка

 else { $this->MODELNAME->insert_images($this->upload->data()); $data = array('upload_data' => $this->upload->data()); $this->load->view('members/header'); $this->load->view('members/upload_success', $data); $this->load->view('members/footer'); } 

И у вашей модели:

 function insert_images($image_data = array()){ $data = array( 'filename' => $image_data['file_name'], 'fullpath' => $image_data['full_path'] ); $this->db->insert('bedrijfimages', $data); } 

Вы можете проверить, какая информация находится внутри этого массива на странице документации CI: библиотека загрузки Codeigniter