Generic placeholder image

Edit gambar codeigniter

Ditanyakan pada tanggal 10 February 2019 oleh Alfiansyah

saya mau mengganti gambar yg telah berhasil diupload, tapi ada masalah ketika saya masukan coding pada model, kira2 harusnya seperti apa ya. coding nya saya dapat dari web lain dan saya pasangkan ke codingan saya sepertinya tidak cocok.

Model

View

Controller

dan error

Comment ..

Minta struktur tabel data_tangki mas, screenshot PHPMyAdmin nya

Dikomentari pada tanggal 11 February 2019 oleh Ahmad Oriza
Comment ..

ini pak struktur tabel phpmyadmin,

https://prnt.sc/mjdno5

Dikomentari pada tanggal 11 February 2019 oleh Alfiansyah
Comment ..

kodingan di modelnya arraynya kok seperti itu?

Dikomentari pada tanggal 11 February 2019 oleh Muhammad Alif
BUAT KOMENTAR

3 JAWABAN

Generic placeholder image
Alfiansyah menjawab pada tanggal 11 February 2019

Berikut script nya

Model :

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class DataTangki_model extends CI_model {

    public $gambar = "default.jpg";

    public function GetAllDataTangki()
    {
        return $this->db->get('data_tangki')->result_array();
    }

    public function getById($db_id)
    {
        return $this->db->get_where('data_tangki', ["db_id" => $db_id])->row();
    }

    public function TambahDataTangki()
    {
        $data = [
            "db_id" =>  $this->db_id = uniqid(),
            "gambar" => $this->_uploadImage(),
            "plat_tangki" => strtoupper($this->input->post('plat', true)),
            "kapasitas_tangki" => number_format($this->input->post('kapasitas', true)),
            "nilai_tera" => $this->input->post('tera', true),
            "posisi_tera" => $this->input->post('posisi', true)
        ];
        $this->db->insert('data_tangki', $data);
    }

    public function HapusDataTangki($db_id)
    {
        // $this->db->where('db_id', $db_id);
        $this->_deleteImage($db_id);
        return $this->db->delete('data_tangki', ['db_id' => $db_id]);
    }

    public function GetDataTangki_ID($db_id)
    {
        return $this->db->get_where('data_tangki', ['db_id' => $db_id])->row_array();
    }

    public function UbahDataTangki()
    {
        $data = [
            "plat_tangki" => strtoupper($this->input->post('plat', true)),

            // ini coding yang saya tambahkan utuk edit gambar
            if (!empty($_FILES["gambar"]["plat_tangki"])) {
                $this->gambar = $this->_uploadImage(),
            } else {
                $this->gambar = $post["old_image"];
            },
            // ini coding yang saya tambahkan utuk edit gambar

            "kapasitas_tangki" => number_format($this->input->post('kapasitas', true)),
            "nilai_tera" => $this->input->post('tera', true),
            "posisi_tera" => $this->input->post('posisi', true),      
        ];

        $this->db->where('db_id', $this->input->post('db_id'));
        $this->db->update('data_tangki', $data);
    }

        private function _uploadImage()
    {
    $config['upload_path']          = './upload/';
    $config['allowed_types']        = 'gif|jpg|png';
    $config['file_name']            = $this->db_id;
    $config['overwrite']            = true;
    $config['max_size']             = 1024; // 1MB
    // $config['max_width']            = 1024;
    // $config['max_height']           = 768;

    $this->load->library('upload', $config);

    if ($this->upload->do_upload('gambar')) {
        return $this->upload->data('file_name');
    }

    return "default.jpg";
    }

    private function _deleteImage($db_id)
    {
        $dt = $this->getById($db_id);
        if ($dt->gambar != "default.jpg") {
            $filename = explode(".", $dt->gambar)[0];
            return array_map('unlink', glob(FCPATH."./upload/$filename.*"));
        }
    }
}

View :

<form action="" method="post">
                <input type="hidden" name="db_id" value="<?= $data_tangki['db_id']; ?>">
                    <div class="form-row">
                        <div class="form-group col-md-6">
                            <label for="plat">Plat</label>
                            <input type="text" class="form-control" id="plat" name="plat" value="<?= $data_tangki['plat_tangki']; ?>">
                        </div>
                        <div class="form-group col-md-6">
                            <label for="kapasitas">Kapasitas</label>
                            <input type="text" class="form-control" id="kapasitas" name="kapasitas" value="<?= $data_tangki['kapasitas_tangki']; ?>">
                        </div>
                        <div class="form-group col-md-4">
                            <label for="tera">Tera</label>
                            <input type="text" class="form-control" id="tera" name="tera" value="<?= $data_tangki['nilai_tera']; ?>">
                        </div>
                        <div class="form-group col-md-4">
                            <label for="posisi">Posisi Tera</label>
                            <select class="form-control" id="posisi" name="posisi">
                            <?php foreach($posisi_tera as $pt) : ?>
                            <?php if ($pt == $data_tangki['posisi_tera']) : ?>
                                <option value="<?= $pt; ?>"selected><?= $pt; ?></option>
                                <?php else : ?>
                                <option value="<?= $pt; ?>"><?= $pt; ?></option>
                                <?php endif; ?>
                            <?php endforeach; ?>
                                </select>
                        </div>
                        <div class="form-group col-md-4">
                            <label for="gambar">Data Gambar Tangki</label>
                            <input type="file" class="form-control-file" id="gambar" name="gambar">
                            <input type="hidden" name="old_image"  value="<?= $data_tangki['gambar']; ?>" />
                        </div>
                    </div>
                    <button type="submit" name="ubah" class="btn btn-primary">Simpan</button>
                </form>
BUAT KOMENTAR
Generic placeholder image
Ngakunya ANAK IT menjawab 2 bulan yang lalu

sebenernya untuk edit gambar, hanya logika hapus file kemudian upload saja

mslh bukan scriipt uppload, only in condition

BUAT KOMENTAR
Generic placeholder image
Slamet Budi Santoso menjawab pada tanggal 7 March 2019

melihat pesan error-nya, karena ada IF dalam format array. mungkin sebaiknya kode tambahannya diletakkan di luar array. cmiiw.

public function UbahDataTangki()
    {
               // ini coding yang saya tambahkan utuk edit gambar
            if (!empty($_FILES["gambar"]["plat_tangki"])) {
                $gambar = $this->gambar = $this->_uploadImage(),
            } else {
                $gambar = $this->gambar = $post["old_image"];
            },
            // ini coding yang saya tambahkan utuk edit gambar

        $data = [
            "plat_tangki" => strtoupper($this->input->post('plat', true)),
            "gambar" => $gambar,
            "kapasitas_tangki" => number_format($this->input->post('kapasitas', true)),
            "nilai_tera" => $this->input->post('tera', true),
            "posisi_tera" => $this->input->post('posisi', true),      
        ];

        $this->db->where('db_id', $this->input->post('db_id'));
        $this->db->update('data_tangki', $data);
    }
BUAT KOMENTAR