Tutorial Upload Image di Codeigniter 4
Pada tutorial sebelumnya admin sudah membahas bagaimana cara menampilkan data multi tabel di codeigniter 4 dan kali ini admin membahas tentang cara membuat upload file gambar dengan codeigniter 4
Pada setiap aplikasi web biasanya mempunyai fitur upload gambar. Dan dengan menggunakan framework codeigniter 4 dapat mempermudah para development web untuk mempercepat dalam membuat fitur-fitur di web. Karena didalam codeigniter 4 sudah menyediakan fungsi untuk upload gambar maupun file mari kita bahas langkah-langkahnya berikut ini :
Membuat Database
Database yang akan kita gunakan adalah database mysql jika kalian menggunakan database yang lainnya silahkan bisa menyesuaikan .
Jika kalian belum tahu tentang database mysql silahkan baca artikel yang kemarin tentang Pengenalan Database Mysql
membuat database dengan nama ci4_upload
create database ci4_upload;
Kemudian kita buat tabel dengan nama upload
create table upload_gambar (
-> id int(5) not null,
-> judul varchar(40),
-> gambar varchar(50),
-> PRIMARY KEY(id)
-> );
Installasi Codeigniter 4
Jika belum paham tentang cara instalasi Codeigniter 4 bisa baca artikel Cara Installasi Codeigniter 4
Konfigurasi Database Mysql
Cara Membuat Koneksi database di codeigniter 4 ada dua cara yaitu cara pertama dengan merename file env menjadi .env yang ada di folder root project atau dengan file Database.php yang ada di folder app/config dan admin menggunakan file .env
database.default.hostname = localhost
database.default.database = ci4_upload
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi
Cari kode diatas kemudian edit hilangkan tanda pagarnya (#) lalu sesuaikan dengan host,username,password dan nama database kalian kemudian simpan jangan lupa juga ubah juga CI_ENVIRONMENT = development
Membuat File Models
Silahkan buat file baru dengan nama ModelsUpload.php kemudian simpan di folder app/models kemudian masukan kode berikut ini :
<?php namespace App\Models;
use CodeIgniter\Model;
class ModelsUpload extends Model
{
protected $table = 'upload_gambar';
public function getGambar()
{
return $this->findAll();
}
public function simpan_gambar($data)
{
$query = $this->db->table($this->table)->insert($data);
return $query;
}
}
Dari kode diatas terdapat beberpa kode dengan fungsi menampilkan data (public function getGambar) dan juga fungsi kode menyimpan data (public function simpan_gambar).
Membuat Controller
Sekarang buat file baru dengan nama Upload.php kemudian simpan di folder app/Controller kemudian masukan kode berikut ini :
<?php namespace App\Controllers;
use CodeIgniter\Controller;
use App\Models\ModelsUpload;
class Upload extends BaseController
{
public function index()
{
helper('form');
$model = new ModelsUpload();
if (!$this->validate([]))
{
$data['validation'] = $this->validator;
$data['gambar'] = $model->getGambar();
echo view('view_list',$data);
}
}
public function proses() {
$model = new ModelsUpload();
if ($this->request->getMethod() !== 'post') {
return redirect()->to('upload');
}
$validation = $this->validate([
'file_upload' => 'uploaded[file_upload]|mime_in[file_upload,image/jpg,image/jpeg,image/gif,image/png]|max_size[file_upload,4096]'
]);
if ($validation == FALSE) {
return $this->index();
} else {
$upload = $this->request->getFile('file_upload');
$upload->move(WRITEPATH . '../public/assets/images/');
$data = array(
'judul' => $this->request->getPost('judul'),
'gambar' => $upload->getName()
);
$model->simpan_gambar($data);
return redirect()->to('./upload')->with('berhasil', 'Data Berhasil di Simpan');
}
}
}
Dari kode diatas terdapat beberapa fungsi, mulai dari menampilkan data (public function index()) dengan memanggil fungsi dari Model ($model = new ModelsUpload();). Fungsi menyimpan data dan upload file (public function proses) yang diteruskan ke model ($model->simpan_gambar($data);) dan juga tempat penyimpanan untuk gambar yang kita upload ($upload->move(WRITEPATH . '../public/assets/images/');) silahkan buat folder baru assets/images di dalam foder public
Membuat Tampilan View
Sekarang kita buat untuk tampilan list data dan juga form uploadnya kita buat file baru dengan nama view_list.php kemudian simpan di folder "app/view" kemudian ketikan kode berikut ini :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Menampilkan Data Multi Join Tabel</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.css" rel="stylesheet">
</head>
<body style="width: 70%; margin: 0 auto; padding-top: 30px;">
<div class="row">
<div class="col-lg-12 margin-tb">
<div class="pull-left">
<h2>Upload Gambar </h2>
</div>
</div>
</div>
<hr>
<div class="row">
<div class="col-lg-12">
<!-- Success Upload -->
<?php if(!empty(session()->getFlashdata('berhasil'))){ ?>
<div class="alert alert-success">
<?php echo session()->getFlashdata('berhasil');?>
</div>
<?php } ?>
<?php
$errors = $validation->getErrors();
if(!empty($errors))
{
echo $validation->listErrors('list');
}
?>
<?= form_open_multipart(base_url('upload/proses')); ?>
<div class="row">
<div class="col-md-4">
<label>Judul</label>
<div class="form-group">
<input type="text" name="judul" class="form-control">
</div>
</div>
<div class="col-md-4">
<label>File</label>
<div class="form-group">
<input type="file" name="file_upload" class="form-control">
</div>
</div>
<div class="col-md-4">
<label>Aksi</label>
<div class="form-group">
<?= form_submit('Send', 'Simpan') ?>
</div>
</div>
</div>
<?= form_close() ?>
</div>
</div>
<div class="row">
<div class="col-lg-12 margin-tb">
<table class="table table-bordered">
<tr>
<th>No</th>
<th>Judul</th>
<th>Gambar</th>
</tr>
<?php foreach($gambar as $row):?>
<tr>
<td><?=$row['id'];?></td>
<td><?=$row['judul'];?></td>
<td><img src="<?=base_url('assets/images/'.$row['gambar']);?>" width="100"></td>
</tr>
<?php endforeach;?>
</table>
</div>
</div>
</body>
</html>
Jika sudah silahkan simpan lalu jalankan projectnya ketikan diterminal php saprk serve kemudian buka web browser kita ketikan alamat http://localhost:8080/upload maka tampilannya akan seperti dibawah ini :
Kesimpulan
Dari tutorial diatas kita sudah berhasil membuat sebuah fitur upload image dengan codeigniter 4 untuk membuat fitur upload file di codeigniter 4 ini lebih kodenya simple dari pada di codeigniter versi sebelumnya.
Semoga tutorial membuat upload images/file/gambar ini dapat bermanfaat dan dapat dijadikan refrensi dalam pembuatan aplikasi dengan codeigniter 4..
terimakasih ya gan tutorialnya
ReplyDeleteterimakasih bang..salam dari timor leste
ReplyDelete