Upload Gambar dan Membuat Thumbnail di CodeIgniter

Fitur unggah gambar sering dibutuhkan untuk foto produk atau profil. CodeIgniter memudahkannya dengan dua library bawaan: Upload dan Image Manipulation. Panduan ini menunjukkan cara upload gambar CodeIgniter sekaligus otomatis membuat thumbnail-nya.

Konfigurasi dan Proses Upload

Pertama, atur konfigurasi upload lalu jalankan prosesnya:

<?php
$config['upload_path']   = './uploads/';
$config['allowed_types'] = 'jpg|jpeg|png';
$config['max_size']      = 2048; // dalam KB
$config['encrypt_name']  = TRUE; // nama acak agar aman

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

if ($this->upload->do_upload('gambar')) {
    $data = $this->upload->data();
    echo "Berhasil: " . $data['file_name'];
} else {
    echo $this->upload->display_errors();
}
?>

Perhatikan allowed_types dan max_size — keduanya adalah validasi keamanan penting agar hanya file gambar berukuran wajar yang diterima.

Membuat Thumbnail Otomatis

Setelah upload berhasil, gunakan library Image Manipulation untuk membuat versi kecilnya:

<?php
$conf['image_library']  = 'gd2';
$conf['source_image']   = './uploads/' . $data['file_name'];
$conf['create_thumb']   = TRUE;
$conf['maintain_ratio'] = TRUE;
$conf['width']          = 150;
$conf['height']         = 150;

$this->load->library('image_lib', $conf);
$this->image_lib->resize();
?>

Opsi create_thumb membuat file baru dengan akhiran “_thumb”, sedangkan maintain_ratio menjaga proporsi gambar agar tidak gepeng.

Kesimpulan

Dengan library bawaan CodeIgniter, upload gambar CodeIgniter beserta pembuatan thumbnail bisa dilakukan hanya dengan beberapa baris kode — lengkap dengan validasi tipe dan ukuran untuk keamanan.

Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi CodeIgniter.

Baca Juga

Ali Akbar

Software Developer yang fokus mengembangkan aplikasi berbasis Web dan Desktop. Senang mempelajari teknologi baru terutama di bidang web design dan web development.

View all posts by Ali Akbar →

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *