как загрузить изображение в codeigniter 3

У меня проблемы с загрузкой изображения с помощью codeigniter. Я новичок в этом и не знал, как загрузить изображение с помощью codeigniter. поэтому я надеюсь, что кто-нибудь из вас, ребята, сможет мне помочь

это моя форма с именем form_add.php

<form method="POST" action="<?php echo base_url()."index.php/crud/insert"; ? >"> <table style="width:110%" class="table table-striped table table-bordered table table-hover"> <td>Nama</td> <td><input type="text" name="nama_produk"/></td> </tr> <tr> <td>Info</td> <td><input type="text" name="info_produk"/></td> </tr> <tr> <td>Harga</td> <td><input type="text" name="harga_produk"/></td> </tr> <tr> <td>Stock</td> <td><input type="text" name="stock"/></td> </tr> <?php echo form_open_multipart('upload/do_upload');?> <tr> <td>Gambar</td> <td><input type="file" name="gambar_produk"></td> </tr> <tr> <td>Di Buat Oleh</td> <td><input type="text" name="penulis_produk"/></td> </tr> <tr> <td>Kategori</td> <td><input type="text" name="kategori"/></td> </tr> <tr> <td>Kode Kategori</td> <td><input type="text" name="kode_kategori"/></td> </tr> <tr> <td></td> <td><input type="submit" name="btnsubmit" value="Simpan" /></td> </tr> </table> </form> 

и это мой контроллер с именем crud.php

 <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Crud extends CI_Controller { public function __construct() { parent::__construct(); $this->load->helper(array('form', 'url')); } public function index(){ $data = $this->mymodel->GetAll(); $this->load->view('view_all_produk',array('data' => $data)); } public function add_data(){ $this->load->view('form_add'); } public function insert(){ $nama_produk = $_POST['nama_produk']; $info_produk = $_POST['info_produk']; $harga_produk = $_POST['harga_produk']; $stock = $_POST['stock']; $penulis_produk = $_POST['penulis_produk']; $gambar_produk = $_FILES['gambar_produk']['name']; $gambar_tmp = $_FILES['gambar_produk']['tmp_name']; $kategori = $_POST['kategori']; $kode_kategori = $_POST['kode_kategori']; $data_insert = array( 'nama_produk' => $nama_produk, 'info_produk' => $info_produk, 'harga_produk' => $harga_produk, 'stock' => $stock, 'penulis_produk' => $penulis_produk, 'gambar_produk' => $gambar_produk, 'kategori' => $kategori, 'kode_kategori' => $kode_kategori ); $res = $this->mymodel->insertData('produk',$data_insert); if($res >= 1){ $this->session->set_flashdata('pesan','Tambah Data Sukses'); redirect('crud/index'); }else{ echo "<h2>Insert Data Gagal!!!</h2>"; } } public function do_upload() { $config['upload_path'] = './assets/images'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = 300; $config['max_width'] = 1024; $config['max_height'] = 768; $this->load->library('upload', $config); if ( ! $this->upload->do_upload('gambar_produk')) { $error = array('error' => $this->upload- >display_errors()); $this->load->view('form_add', $error); } else { $data = array('upload_data' => $this->upload->data()); } } 

и это модель с именем mymodel.php

 <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Mymodel extends CI_Model { public function GetAll($where="") { $data = $this->db->query('select * from produk '.$where); return $data -> result_array(); } public function insertData($tableName,$data){ $res = $this->db->insert($tableName,$data); return $res; } public function updateData($tableName,$data,$where){ $res = $this->db->update($tableName,$data,$where); return $res; } public function GetKategori($where=""){ $data = $this->db->query('select * from kategori '.$where); return $data; } } 

также это то, что он показывает после того, как я запустил его

Возникла ошибка PHP

Уровень важности: уведомление

Сообщение: Неопределенный индекс: gambar_produk

Имя файла: controllers / crud.php

Номер строки: 30

Backtrace:

Файл: C: \ xampp \ htdocs \ genstore \ admin \ application \ controllers \ crud.php Линия: 30 Функция: _error_handler

Файл: C: \ xampp \ htdocs \ genstore \ admin \ index.php Линия: 315 Функция: require_once


Возникла ошибка PHP

Уровень важности: уведомление

Сообщение: Неопределенный индекс: gambar_produk

Имя файла: controllers / crud.php

Номер строки: 31

Backtrace:

Файл: C: \ xampp \ htdocs \ genstore \ admin \ application \ controllers \ crud.php Строка: 31 Функция: _error_handler

Файл: C: \ xampp \ htdocs \ genstore \ admin \ index.php Линия: 315 Функция: require_once


Ошибка базы данных Произошла

Номер ошибки: 1048

Столбец «gambar_produk» не может быть нулевым

INSERT INTO nama_produk ( nama_produk , info_produk , harga_produk , stock , penulis_produk , penulis_produk , gambar_produk , kode_kategori ) VALUES ('sada', 'asdas', 'asdasd', 'sdasd', 'sdasd', NULL, 'sadasd', '14 «)

Имя файла: C: /xampp/htdocs/genstore/admin/system/database/DB_driver.php

Номер строки: 691

так может кто-нибудь сказать мне, в чем моя ошибка? благодаря

Вы используете multipart в форме?

 <?php echo form_open_multipart('upload/do_upload');?> 

https://www.codeigniter.com/userguide3/libraries/file_uploading.html

Редактирование: я вижу, что есть, в вашем коде есть форма!

попробуй это ! Отправить данные формы, закодированные как «multipart / form-data»:

 <form method="POST" action="<?php echo base_url()."index.php/crud/insert"; ?>" enctype="multipart/form-data"> <table style="width:110%" class="table table-striped table table-bordered table table-hover">