Tutorial Codeigniter Part 14, Membuat Fitur Upload dan Download di Codeigniter

Selamat datang di warungbelajar, kali ini kita akan melanjutkan pembahasan mengenai seri tutorial belajar codeigniter, pada kesempatan ini kita akan belajar membuat fitur upload dan download file di Codeigniter.

Codeigniter telah menyediakan library yang akan memudahkan anda untuk proses mengupload atau mendownload file.

Baik kita langsung saja mulai ya.

 

Persiapan Project

Kita buat project codeigniter terlebih dahulu… dalam contoh ini folder projectnya kita beri nama belajarupload, 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 dan download, dimana nama berkasnya akan kita simpan didatabase, sehingga kita perlu membuat databasenya.. dalam contoh ini kita buat databasenya dengan nama upload_db.

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. keterangan_berkas (varchar 255)
  4. tipe_berkas (varchar 100)
  5. ukuran_berkas (float)

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

 

Setting Database di Codeigniter

Silahkan buka file application/config/database.php, untuk bagian $db[‘default’] rubah menjadi seperti berikut :

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_db
  • 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 dan download

 

 

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 belajarupload, sehingga 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/belajarupload/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 :

Pada Line 11 kita buat function proses, untuk melakukan memproses bagian form upload.

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

 

digunakan untuk memberikan nama file yang diupload, menjadi acak, sehingga membuat nama file 1 dan yang lain tidak mungkin akan sama.

 

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 22, 23

 

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

 

Line 23 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

 

Line 27 kita buat array $data dengan elemen “nama_berkas” untuk nama berkasnya kita gunakan perintah $this->upload->data(“file_name”) untuk bagian file name ini, akan bernilai hash, karena kita menggunakan perintah $config[‘encrypt_name’] = TRUE;

 

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

 

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

 

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

 

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

 

Pada Line 32 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/belajarupload/index.php/upload

 

Keterangan :

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

 

Line 19 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 23 kita buat perintah untuk memberikan nomor pada datanya

 

Line 24 kita tampilankan gambar dengan tag <img> di HTML, untuk attribute src kita ambil value dengan menuliskan nama berkas dari nilai kolom nama_berkas pada tabel tb_berkas sebagai nama gambar file gambar didalam folder uploads.

 

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

 

Line 26 kita buat kita tuliskan perintah untuk membuat link untuk mengakses function download didalam controller upload, dengan menyertakan nilai pada kolom kd_berkas dari masing – masing berkas.

Berikutnya kita buat function download yang digunakan untuk membuat fitur download dari berkas.

 

 

Buat Function Download pada controller Upload

Berikutnya kita buat function download didalam Controller Upload, sehingga untuk controller Upload menjadi seperti berikut ini :

Keterangan :

Kita Menambahkan function download di line 43 – 47

Pada function download kita menyertakan variabel $id sebagai parameter, variabel $id berisi nilai dari kd_berkas, dari berkas yang akan didownload

 

Line 45 kita membuat variabel $data untuk menyimpan record hasil query pada tabel tb_berkas dengan kd_berkas sesuai dengan nilai dari variabel $id

 

Line  46 kita gunakan perintah force_download untuk melakukan proses download, function force_download adalah perintah bawaan dari codeigniter yang diperuntukkan untuk download file, untuk dapat menggunakan function force_download anda diharuskan load helper ‘download’

 

pada function force_download terdapat 2 parameter yang dapat diisi yaitu :

  1. nama file yang akan didownload, nama file disini harus dilengkapi dengan lokasi dari filenya
  2. nama file yang akan diberikan saat proses download dilakukan.

nah dalam contoh ini, kita mengisikan nilai pada paremeter pertama, dengan nama berkas yang akan didownload, nama berkas disini kita ambil dari nilai kolom nama_berkas dari tabel tb_berkas, tidak hanya itu kita juga menyertakan direktori dari tempat menyimpan berkas itu, yaitu pada folder uploads.

Pada parementer 2 kita berikan nilai NULL, karena kita akan memberikan nama pada file ini sesuai nama berkas yang terupload.

 

Baik sekian dulu teman – teman pembahasan cara membuat fitur download & upload 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

 

DVD TUTORIAL BELAJAR FRAMEWORK CODEIGNITER


 

 

Leave a Reply

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