【问题标题】:how to upload image in codeigniter 3如何在codeigniter 3中上传图像
【发布时间】:2017-02-24 14:02:14
【问题描述】:

我在使用 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

回溯:

文件: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

回溯:

文件: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”不能为空

插入produknama_produkinfo_produkharga_produkstockpenulis_produkgambar_produkkategorikode_kategori)值('sada's, , 'asdasd', 'sdasd', 'sdasd', NULL, 'sadasd', '14')

文件名:C:/xampp/htdocs/genstore/admin/system/database/DB_driver.php

行号:691

所以谁能告诉我我的错误是什么?谢谢

【问题讨论】:

标签: php codeigniter image-uploading


【解决方案1】:

您在表单上使用多部分吗?

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

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

编辑:我明白了,您的代码中的表单中有一个表单!!

【讨论】:

【解决方案2】:

试试这个!发送编码为“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">

【讨论】:

  • enctype 是一个 FORM 属性
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 1970-01-01
  • 2020-03-02
  • 2016-10-02
  • 1970-01-01
相关资源
最近更新 更多