Tutorial Codeigniter Part 16, Cara Membuat Fitur Upload dengan Blob di Codeigniter

Selamat datang di warungbelajar, dalam tutorial kali ini kita masih belajar di seri tutorial codeigniter, kali ini kita akan membahas bagaimana membuat fitur upload file, dan disimpan kedalam bentuk blob di codeigniter.

Pada tutorial sebelumnya kita sudah membahas beberapa tutorial cara mengupload file di codeigniter :

Cara membuat fitur upload dan download

Cara membuat fitur multiple upload

Nah kali ini sedikit berbeda karena kita akan belajar membuat fitur upload, tetapi hasil uploadnya tidak disimpan didalam folder penyimpanan di direktori webnya, tetapi file yang diupload akan disimpan di dalam bentuk blob di database.

Blob sendiri adalah singkatan dari Binary large object, dimana salah satu jenis tipe data di database yang memungkinkan teman – teman untuk menyimpan file dalam bentuk data biner, sehingga secara fisik file hasil upload tidak terdapat di dalam direktori web, tetapi akan dikonversi menjadi biner dan disimpan didalam database.

baik kita akan mulai, langkah – langkahnya adalah sebagai berikut :

 

Persiapan Project

Kita buat project codeigniter terlebih dahulu… dalam contoh ini folder projectnya kita beri nama uploadblob, untuk proses instalasi dari codeigniter, bisa anda lihat di tutorial kita sebelumnya : Cara Menginstall Framework Codeigniter

 

Buat Database

Karena nantinya kita akan membuat fitur upload, dimana informasi berkasnya akan kita simpan didatabase, sehingga kita perlu membuat databasenya.. dalam contoh ini kita buat databasenya dengan nama upload_blob.

dalam database itu kita buat sebuah tabel dengan nama tb_berkas, dimana kolomnya adalah sebagai berikut :

  1. kd_berkas (int) – Primary Key – Auto Increment
  2. nama_berkas (varchar 255)
  3. berkas (blob)
  4. keterangan_berkas (varchar 255)
  5. tipe_berkas (varchar 100)
  6. ukuran_berkas (float)

Untuk memudahkan teman – teman, bisa menggunakan code SQL dibawah ini :

 

 

Setting Database di Codeigniter

Keterangan :

  • Bagian host menjadi localhost
  • Bagian username kita set menjadi root (setting default dari xampp)
  • Bagian password kita set kosong (setting default dari xampp)
  • Bagian database kita set dengan nama databasenya yaitu upload_blob
  • Bagian dbdriver kita gunakan mysqli

 

Load Library yang dibutuhkan

Kita akan tuliskan beberapa perintah untuk load library dan helper, silahkan bukan file application/config/autoload.php

tambahkan bagian libraries dengan library database

tambahkan bagian helper dengan helper url

 

Setting bagian base_url

Berikutnya kita harus set bagian base url, buka file application/config/config.php

kita set bagian base_url, dalam contoh ini karena project kita berada pada folder uploadblob , maka pada bagian base_url kita tuliskan seperti dibawah ini, nanti bisa teman – teman sesuaikan dengan project punya teman – teman ya.

 

Buat Folder dengan nama uploads di project codeigniter

Kita perlu membuat folder yang digunakan untuk menyimpan berkas yang diupload, dalam contoh ini kita buat folder dengan nama uploads didalam folder project codeigniternya, untuk nama folder ini bisa disesuaikan dengan yang teman – teman inginkan, jadi tidak harus uploads.

 

Membuat Controller Upload

Berikutnya kita buat controller dengan nama Upload.php, posisi dari controller berada pada folder application/controllers.

Dalam Controller Upload, kita buat class Upload, dan kita buat function dengan nama create.

pada function create ini kita akan load view, dengan nama form_upload.php yang akan berisi form untuk mengupload berkas.

sehingga kurang lebih seperti berikut ini isi dari file Controller Upload.php

Keterangan :

dengan perintah diatas, maka ketika function create diakses maka akan menampilkan file view dengan nama form_upload.

Buat file view form_upload.php

Berikutnya kita buat file view dengan nama form_upload.php, untuk kodenya adalah sebagai berikut :

Untuk Mengakses form upload, anda bisa menggunakan alamat : localhost/uploadblob/index.php/upload/create

Keterangan :

Pada Line 7 kita menggunakan function isset untuk mengecek apakah memiliki variabel $error, nah variabel $error ini nantinya akan kita dapat saat proses upload terjadi error, pada bagian validasi form upload, nanti kita akan jelaskan lebih lanjut saat pembahasan proses uploadnya.

Pada Line 10 kita menampilkan variabel $error yang berisi array dengan menggunakan perintah print_r, isi variabel $error ini nantinya akan berisi pesan error saat upload file tidak berhasil.

Pada Line 14 kita gunakan tag <form> html dengan beberapa attribute didalamnya :

  • kita gunakan method post.
  • Karena kita membuat form upload, sehingga kita perlu menuliskan enctype=”multipart/form-data”
  • untuk bagian action kita menuliskan value “<?php echo base_url(); ?>index.php/upload/proses” karena nantinya proses upload akan di proses pada function proses di dalam controller Upload.

Pada bagian form kita membuat 2 inputan yaitu :

  • inputan dengan tipe file dengan nama berkas
  • textarea dengan nama keterangan_berkas

 

 

Membuat Function Proses di Controller Upload

Berikutnya kita buat function proses yang digunakan untuk memproses inputan dari bagian form upload, kurang lebih codenya adalah seperti ini :

Keterangan :

Untuk proses upload, kita perlu membuat konfigurasi dari bagian upload, dalam contoh ini kita gunakan variabel $config, beberapa settingannya adalah sebagai berikut :

artinya untuk folder tempat menyimpan file hasil upload adalah folder uploads, folder uploads yang sebelumnya telah kita buat

 

artinya untuk file extention yang di perbolehkan untuk diupload adalah gif, jpg,dan png

 

artinya maksimal ukuran file yang boleh diupload adalah 100 Kb

 

artinya untuk ukuran lebar dari file adalah 1024 px, berlaku jika kita upload file gambar

 

artinya untuk ukuran tinggi dari file adalah 768 px, berlaku jika kita upload file gambar

 

Berikutnya kita setting konfigurasi ini kedalam library upload (Line 19).

 

Line 20 kita lakukan pengecekan apakah proses upload gagal ? untuk tulisan berkas disini adalah value name , dari bagian form yang digunakan untuk upload file, jika ternyata proses upload gagal maka akan menjalankan perintah di line 21, 22

 

Line 21 kita mengisi variabel $error dengan informasi error yang terjadi saat proses upload.

 

Line 22 kita load view dengan nama form_upload, dengan mempassing variabel $error, nah variabel ini yang sudah kita bahas pada file view dengan nama form_upload pada line 10

 

Jika Proses upload berhasil maka akan menjalankan kode pada line 26 – 36

Line 26 – 27 kita mendapatkan informasi mengenai posisi file yang sebelumnya telah diupload, menggunakan perintah $image_data[‘full_path’], lalu berikutnya kita menggunakan fungsi file_get_contents untuk membaca data gambar yang diupload kedalam bentuk string, nah data tersebut disimpan pada variabel $imgdata.

 

Line 28 kita menggunakan fungsi base64_encode untuk membuat enkripsi dari data string image yang kita upload, dan hasil enkripsi itu kita simpan pada variabel $file_encode, nantinya isi dari variabel $file_encode yang akan diinsert kedalam kolom berkas dengan tipe data blob.

 

Line 29 kita buat array $data dengan elemen “keterangan_berkas” untuk menyimpan nilai dari bagian form keterangan_berkas

 

Line 30 kita buat array $data dengan elemen “tipe_berkas” untuk menyimpan tipe dari file yang diupload dengan perintah $this->upload->data(‘file_type’)

 

Line 31 kita buat array $data dengan elemen “ukuran_berkas” untuk menyimpan ukuran berkas dari file yang diupload, dengan perintah $this->upload->data(‘file_size’)

 

Line 32 kita buat array $data dengan elemen “berkas” untuk menyimpan hasil enkripsi dari file yang sudah kita upload.

 

Line 33 kita buat array $data dengan elemen “nama_berkas” untuk menyimpan nama file yang kita upload

 

Line 34 kita tuliskan perintah $this->db->insert(‘tb_berkas’,$data) yang artinya kita insert data ke dalam tabel tb_berkas dengan data pada array $data.

 

Line 35 berikutnya kita gunakan perintah unlink untuk menghapus file hasil upload, yang masih tersimpan di folder uploads, kita gunakan variabel $image_data[‘full_path’] untuk memberikan informasi terkait file yang akan dihapus.

 

Pada Line 36 kita redirect kedalam controller upload, ketika proses insert data ke tabel tb_berkas selesai.

 

 

Menampilkan Data File yang diupload

Berikutnya masih didalam controller Upload, kita menambahkan function index, yang nantinya digunakan untuk menampilkan view dengan nama tampil_berkas, dimana dalam view ini kita akan menampilkan data dari tabel tb_berkas.

Jadi kurang lebih untuk controller Upload seperti gambar diatas, kita menambahkan function index dari line 36 – 40.

Keterangan :

Line 3 kita buat array variabel $data, dengan elemen berkas dimana kita akan mengisikan data record dari tabel tb_berkas.

Line 4 kita load view dengan nama tampil_berkas dengan passing data variabel $data, yang berisi data dari tabel tb_berkas.

 

 

Buat View dengan tampil_berkas

Berikutnya kita buat view dengan nama tampil_berkas, untuk codenya adalah seperti berikut :

Untuk Mengakses Halaman ini anda bisa menggunakan alamat : localhost/uploadblob/index.php/upload

Keterangan :

Line 8 kita buat link untuk mengakses function create pada controller upload.

 

Line 18 kita buat perulangan untuk extract data dari variabel $berkas yang telah berisi data dari tabel tb_berkas, dan setiap perulangannya diwakili dengan variabel $row.

 

Line 22 kita buat perintah untuk memberikan nomor pada datanya

 

Line 23 kita tampilankan gambar dengan tag <img> di HTML, untuk attribute src untuk bagian value agak sedikit berbeda, karena kita menampilkan gambar dari bagian blob, kita menuliskan tipe data dengan perintah $row->tipe_berkas untuk mengambil data pada kolom tipe_berkas, lalu kita tuliskan base64 karena sebelumnya kita enkrip dengan menggunakan base64, lalu untuk datanya kita ambil dari kolom berkas, sehingga kita tuliskan $row->berkas.

 

Line 24 kita gunakan untuk menampilkan keterangan atas berkas, mengambil nilai dari kolom keterangan_berkas, pada tabel tb_berkas

 

Baik sekian dulu teman – teman pembahasan cara membuat fitur upload dengan blob di framework codeigniter, jika ada yang ingin didiskusikan silahkan di kolom komentar.

Untuk teman teman yang ingin download source hasil belajar bisa klik disini : Source Code

 
 


ANDA INGIN SERIUS BELAJAR FRAMEWORK CODEIGNITER ?

Seperti yang anda ketahui bahwa saat ini skill di bidang pemrograman sangatlah dibutuhkan, salah satunya adalah pemograman PHP.
Untuk anda yang ingin serius belajar pemrograman PHP, Khususnya menggunakan Framework PHP Codeigniter, Warung Belajar Memiliki Beberapa Paket Tutorial yang bisa membantu anda dalam belajar menggunakan Framework PHP Codeigniter, dari mulai step – step dasar hingga mampu membuat aplikasi berbasis web dengan menggunakan Framework PHP Codeigniter.

Paket Tutorial ini berisi video tutorial belajar pemrograman berbahasa indonesia, cocok sekali untuk anda yang sedang belajar Framework PHP Codeigniter, bahkan untuk orang awam sekalipun.

Paket Tutorial ini juga dilengkapi dengan study kasus yang akan mempermudah pemahaman anda dalam belajar pemrograman, Mari berinvestasi untuk menambah skill dalam menguasai Framework PHP Codeigniter

4 thoughts on “Tutorial Codeigniter Part 16, Cara Membuat Fitur Upload dengan Blob di Codeigniter

  • September 24, 2020 at 1:32 pm
    Permalink

    ERROR UPLOAD :
    The upload path does not appear to be valid.

    Reply
    • September 24, 2020 at 10:44 pm
      Permalink

      coba pastikan folder posisi upload sudah sesuai mas, atau sesuaikan saja dengan source code yang kita sertakan diakhir tutorial

      Reply
  • October 13, 2020 at 5:42 pm
    Permalink

    bagaimana caranya membuat delete gambarnya

    Reply
    • October 14, 2020 at 8:04 am
      Permalink

      tinggal delete recordnya saja otomatis data gmabar terhapus kak

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *