Tutorial Codeigniter Part 15, Membuat Fitur Multiple Upload di Codeigniter
Selamat datang di warungbelajar, dalam tutorial ini kita akan melanjutkan pembahasan dari seri tutorial codeigniter, pada part 15 kita akan belajar membut fitur multiple upload di codeigniter.
Tutorial ini memiliki konsep yang hampir sama dengan tutorial kita sebelumnya terkait cara upload dan download tutorial di codeigniter, hanya saja kita akan modifikasi sedikit skripnya agar dapat memproses upload dengan file lebih dari satu.
dalam tutorial ini kita juga akan menyimpan informasi file yang diupload kedalam database, sehingga kita akan membuat databasenya juga, baik langkah – langkahnya adalah sebagai berikut :
Persiapan Project
Kita buat project codeigniter terlebih dahulu… dalam contoh ini folder projectnya kita beri nama multiupload, 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 multiupload_db.
dalam database itu kita buat sebuah tabel dengan nama tb_berkas, dimana kolomnya adalah sebagai berikut :
- kd_berkas (int) – Primary Key – Auto Increment
- nama_berkas (varchar 255)
- keterangan_berkas (varchar 255)
- tipe_berkas (varchar 100)
- ukuran_berkas (float)
Untuk memudahkan teman – teman, bisa menggunakan code SQL dibawah ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
-- phpMyAdmin SQL Dump -- version 4.9.0.1 -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 -- Waktu pembuatan: 01 Feb 2020 pada 06.34 -- Versi server: 10.4.6-MariaDB -- Versi PHP: 7.3.9 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Database: `multiupload_db` -- CREATE DATABASE IF NOT EXISTS `upload_db` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; USE `multiupload_db`; -- -------------------------------------------------------- -- -- Struktur dari tabel `tb_berkas` -- CREATE TABLE `tb_berkas` ( `kd_berkas` int(11) NOT NULL, `nama_berkas` varchar(255) DEFAULT NULL, `keterangan_berkas` varchar(255) DEFAULT NULL, `tipe_berkas` varchar(100) DEFAULT NULL, `ukuran_berkas` float NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Indexes for dumped tables -- -- -- Indeks untuk tabel `tb_berkas` -- ALTER TABLE `tb_berkas` ADD PRIMARY KEY (`kd_berkas`); -- -- AUTO_INCREMENT untuk tabel yang dibuang -- -- -- AUTO_INCREMENT untuk tabel `tb_berkas` -- ALTER TABLE `tb_berkas` MODIFY `kd_berkas` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; |
Setting Database di Codeigniter
Silahkan buka file application/config/database.php, untuk bagian $db[‘default’] rubah menjadi seperti berikut :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', 'username' => 'root', 'password' => '', 'database' => 'multiupload_db', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE ); |
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 multiupload_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
1 |
$autoload['libraries'] = array('database'); |
tambahkan bagian helper dengan helper url dan download
1 |
$autoload['helper'] = array('url','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 multiupload, sehingga pada bagian base_url kita tuliskan seperti dibawah ini, nanti bisa teman – teman sesuaikan dengan project punya teman – teman ya.
1 |
$config['base_url'] = 'http://localhost/multiupload'; |
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 :
1 2 3 4 5 6 7 8 9 10 |
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Upload extends CI_Controller { function create() { $this->load->view('form_upload'); } } |
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 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
<html> <head> <title> Belajar Upload di Codeigniter - Warung Belajar -</title> </head> <body> <?php if(isset($error)) { echo "ERROR UPLOAD : <br/>"; print_r($error); echo "<hr/>"; } ?> <form method="post" enctype="multipart/form-data" action="<?php echo base_url(); ?>index.php/upload/proses"> <div>Berkas 1: </div> <div><input type="file" name="berkas[]"></div> <div>Keterangan 1 : </div> <div><textarea name="keterangan_berkas[]"></textarea></div> <hr/> <div>Berkas 2: </div> <div><input type="file" name="berkas[]"></div> <div>Keterangan 2 : </div> <div><textarea name="keterangan_berkas[]"></textarea></div> <hr/> <div>Berkas 3: </div> <div><input type="file" name="berkas[]"></div> <div>Keterangan 3 : </div> <div><textarea name="keterangan_berkas[]"></textarea></div> <hr/> <div>Berkas 4: </div> <div><input type="file" name="berkas[]"></div> <div>Keterangan 4 : </div> <div><textarea name="keterangan_berkas[]"></textarea></div> <br/> <div><input type="submit" value="Simpan"/></div> </form> </body> </html> |
untuk mengaksesnya kita menggunakan alamat : localhost/multiupload/index.php/upload/create
Keterangan :
Dalam view ini kita buat form dengan 4 inputan dengan type file, dan 4 textarea
dimana untuk inputan file kita beri value pada attribute name adalah berkas[] , dan untuk textarea value pada attribute name adalah keterangan_berkas[]
dimana kalau kita melihat terdapat tambahan karakter [] pada bagian value name, hal tersebut agar bagian name nantinya akan terbaca sebagai array, karena inputannya lebih dari satu, dan menggunakan 1 nama yang sama yaitu untuk inputan file adalah berkas, dan textarea adalah keterangan_berkas
hal ini akan memudahkan nantinya dalam penangkapan inputan dibagian controller saat form di proses.
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 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Upload extends CI_Controller { function create() { $this->load->view('form_upload'); } function proses() { $config['upload_path'] = './uploads/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = 500; $config['max_width'] = 2048; $config['max_height'] = 1000; $config['encrypt_name'] = true; $this->load->library('upload',$config); $keterangan_berkas = $this->input->post('keterangan_berkas'); $jumlah_berkas = count($_FILES['berkas']['name']); for($i = 0; $i < $jumlah_berkas;$i++) { if(!empty($_FILES['berkas']['name'][$i])){ $_FILES['file']['name'] = $_FILES['berkas']['name'][$i]; $_FILES['file']['type'] = $_FILES['berkas']['type'][$i]; $_FILES['file']['tmp_name'] = $_FILES['berkas']['tmp_name'][$i]; $_FILES['file']['error'] = $_FILES['berkas']['error'][$i]; $_FILES['file']['size'] = $_FILES['berkas']['size'][$i]; if($this->upload->do_upload('file')){ $uploadData = $this->upload->data(); $data['nama_berkas'] = $uploadData['file_name']; $data['keterangan_berkas'] = $keterangan_berkas[$i]; $data['tipe_berkas'] = $uploadData['file_ext']; $data['ukuran_berkas'] = $uploadData['file_size']; $this->db->insert('tb_berkas',$data); } } } redirect('upload'); } } |
Keterangan :
Line 11 kita buat method proses, untuk memproses inputan form
Untuk proses upload, kita perlu membuat konfigurasi dari bagian upload, dalam contoh ini kita gunakan variabel $config, beberapa settingannya adalah sebagai berikut :
1 |
$config['upload_path'] = './uploads/'; |
artinya untuk folder tempat menyimpan file hasil upload adalah folder uploads, folder uploads yang sebelumnya telah kita buat
1 |
$config['allowed_types'] = 'gif|jpg|png'; |
artinya untuk file extention yang di perbolehkan untuk diupload adalah gif, jpg,dan png
1 |
$config['max_size'] = 500; |
artinya maksimal ukuran file yang boleh diupload adalah 500 Kb
1 |
$config['max_width'] = 2048; |
artinya untuk ukuran lebar dari file adalah 2048 px, berlaku jika kita upload file gambar
1 |
$config['max_height'] = 1000; |
artinya untuk ukuran tinggi dari file adalah 1000 px, berlaku jika kita upload file gambar
1 |
$config['encrypt_name'] = true; |
digunakan untuk memberikan nama file yang diupload, menjadi acak, sehingga membuat nama file 1 dan yang lain tidak mungkin akan sama.
1 |
$this->load->library('upload',$config); |
Berikutnya kita setting konfigurasi ini kedalam library upload (Line 19).
1 |
$keterangan_berkas = $this->input->post('keterangan_berkas'); |
1 |
$jumlah_berkas = count($_FILES['berkas']['name']); |
Line 21 kita menyimpan jumlah inputan file, pada variabel $jumlah_berkas.
1 |
for($i = 0; $i < $jumlah_berkas;$i++) |
Pada line 22 kita melakukan perulangan menggunakan perintah for, perulangan dilakukan sejumlah nilai yang ada pada variabel $jumlah_berkas, setiap kali perulangan akan dilakukan penambahan pada nilai pada variabel $i
1 |
if(!empty($_FILES['berkas']['name'][$i])) |
Pada Line 24 setiap perulangan kita lakukan pengecekan, apakah berkas pada perulangan tersebut berisi file yang akan diupload, jika berisi file yang akan diupload akan menjalankan perintah pada line 26 – 40, yang secara sederhana akan dilakukan proses upload, ketika bagian inputan type file berisi file.
1 2 3 4 5 |
$_FILES['file']['name'] = $_FILES['berkas']['name'][$i]; $_FILES['file']['type'] = $_FILES['berkas']['type'][$i]; $_FILES['file']['tmp_name'] = $_FILES['berkas']['tmp_name'][$i]; $_FILES['file']['error'] = $_FILES['berkas']['error'][$i]; $_FILES['file']['size'] = $_FILES['berkas']['size'][$i]; |
Pada Line 26 – 30 kita generate sebuah variabel dengan nama $_FILES, Variabel ini adalah sebuah array yang menampung data tentang filenya, untuk index dari array ini kita beri nama file.
ada beberapa index antara lain :
- name adalah nama file yang diupload
- type adalah jenis file yang diupload;
- tmp_name adalah nama file yang berada dalam direktori temporary server
- error akan menyimpan status apakah ada error atau tidak
- size digunakan untuk menyimpan ukuran file yang diupload
nah setiap kali perulangan, variabel ini akan mendapatkan nilai dari variabel $_FILES[‘berkas’], dan index urutan sesuai nilai dari variabel $i, disini kita menuliskan index berkas karena value attribute name pada inputan file adalah berkas.
variabel $i adalah urutan dari inputan file yang bersifat multiple., sehingga setiap kali perulangan, variabel $_FILES[‘berkas’] akan berisi nilai yang berbeda, sesuai dengan posisi perulangannya disesuaikan dengan posisi inputan file di bagian form.
1 |
if($this->upload->do_upload('file')) |
Line 32 berikutnya kita melakukan pengecekan upload file apakah berhasil, disini kita menggunakan name file karena sebelumnya kita sudah set informasinya berada pada variabel $_FILES[‘file’]
1 |
$uploadData = $this->upload->data(); |
Line 34 kita buat sebuah variabel dengan nama $uploadData yang digunakan untuk menyimpan informasi file yang diupload
1 |
$data['nama_berkas'] = $uploadData['file_name']; |
Line 35, kita buat variabel $data, variabel ini nantinya akan berisi data yang akan disimpan di tabel tb_berkas, untuk index menyesuaikan nama kolom di tabel tb_berkas, nah untuk nilainya diambil dari variabel $uploadData dengan index file_name, yang berisi nama file yang diupload, index name_berkas akan digunakan untuk mengisi kolom nama_berkas di tabel tb_berkas
1 |
$data['keterangan_berkas'] = $keterangan_berkas[$i]; |
Line 36 kita buat variabel $data dengan index keterangan_berkas, untuk index ini kita berikan nilai dari array $keterangan_berkas yang berisi inputan textarea dari form, kita menuliskan index dengan variabel $i, sesuai perulangan, nilai variabel $data dengan index keterangan_berkas ini akan digunakan untuk nilai pada kolom keterangan_berkas di tabel tb_berkas
1 |
$data['tipe_berkas'] = $uploadData['file_ext']; |
Line 37, kita buat variabel $data, untuk index tipe_berkas kita berikan nilai dari variabel $uploadData dari index file_ext, index tipe_berkas ini digunakan untuk nilai pada kolom tipe_berkas pada tabel tb_berkas
1 |
$data['ukuran_berkas'] = $uploadData['file_size']; |
Line 38, kita buat variabel $data, untuk index ukuran_berkas kita berikan nilai dari variabel $uploadData dari index file_size, index ukuran_berkas ini digunakan untuk nilai pada kolom ukuran_berkas pada tabel tb_berkas
1 |
$this->db->insert('tb_berkas',$data); |
Line 39 kita tuliskan perintah untuk insert data ke dalam tabel tb_berkas, dengan nilai yang ada pada array data.
1 |
redirect('upload'); |
Line 44 kita tuliskan perintah untuk redirect controller upload, ketika proses perulangan dan proses upload file 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Upload extends CI_Controller { function create() { $this->load->view('form_upload'); } function proses() { $config['upload_path'] = './uploads/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = 500; $config['max_width'] = 2048; $config['max_height'] = 1000; $config['encrypt_name'] = true; $this->load->library('upload',$config); $keterangan_berkas = $this->input->post('keterangan_berkas'); $jumlah_berkas = count($_FILES['berkas']['name']); for($i = 0; $i < $jumlah_berkas;$i++) { if(!empty($_FILES['berkas']['name'][$i])){ $_FILES['file']['name'] = $_FILES['berkas']['name'][$i]; $_FILES['file']['type'] = $_FILES['berkas']['type'][$i]; $_FILES['file']['tmp_name'] = $_FILES['berkas']['tmp_name'][$i]; $_FILES['file']['error'] = $_FILES['berkas']['error'][$i]; $_FILES['file']['size'] = $_FILES['berkas']['size'][$i]; if($this->upload->do_upload('file')){ $uploadData = $this->upload->data(); $data['nama_berkas'] = $uploadData['file_name']; $data['keterangan_berkas'] = $keterangan_berkas[$i]; $data['tipe_berkas'] = $uploadData['file_ext']; $data['ukuran_berkas'] = $uploadData['file_size']; $this->db->insert('tb_berkas',$data); } } } redirect('upload'); } public function index() { $data['berkas'] = $this->db->get('tb_berkas'); $this->load->view('tampil_berkas',$data); }} |
Jadi kurang lebih untuk controller Upload seperti gambar diatas, kita menambahkan function index dari line 47 – 51.
1 2 3 4 5 |
public function index() { $data['berkas'] = $this->db->get('tb_berkas'); $this->load->view('tampil_berkas',$data); } |
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 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<html> <head> <title></title> </head> <body> <h3><center>Tampil Berkas</center></h3> <hr/> <a href="<?php echo base_url(); ?>index.php/upload/create">Tambah Berkas</a> <hr/> <table border="1" width="75%" style="text-align:center;"> <tr> <th>No</th> <th>Image</th> <th>Keterangan</th> <th>Action</th> </tr> <?php $no = 1; foreach($berkas->result() as $row) { ?> <tr> <td><?php echo $no++; ?></td> <td><img width="100 " src="<?php echo base_url(); ?>uploads/<?php echo $row->nama_berkas; ?>"/></td> <td><?php echo $row->keterangan_berkas; ?></td> <td><a href="<?php echo base_url(); ?>index.php/upload/download/<?php echo $row->kd_berkas; ?>">Download</a></td> </tr> <?php } ?> </table> </body> </html> |
Keterangan :
1 |
<a href="<?php echo base_url(); ?>index.php/upload/create">Tambah Berkas</a> |
Line 8 kita buat link untuk mengakses function create pada controller upload.
1 |
foreach($berkas->result() as $row) |
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.
1 |
<?php echo $no++; ?> |
Line 23 kita buat perintah untuk memberikan nomor pada datanya
1 |
<img width="100 " src="<?php echo base_url(); ?>uploads/<?php echo $row->nama_berkas; ?>"/> |
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.
1 |
<td><?php echo $row->keterangan_berkas; ?></td> |
Line 25 kita gunakan untuk menampilkan keterangan atas berkas, mengambil nilai dari kolom keterangan_berkas, pada tabel tb_berkas
1 |
<td><a href="<?php echo base_url(); ?>index.php/upload/download/<?php echo $row->kd_berkas; ?>">Download</a></td> |
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 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Upload extends CI_Controller { function create() { $this->load->view('form_upload'); } function proses() { $config['upload_path'] = './uploads/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = 500; $config['max_width'] = 2048; $config['max_height'] = 1000; $config['encrypt_name'] = true; $this->load->library('upload',$config); $keterangan_berkas = $this->input->post('keterangan_berkas'); $jumlah_berkas = count($_FILES['berkas']['name']); for($i = 0; $i < $jumlah_berkas;$i++) { if(!empty($_FILES['berkas']['name'][$i])){ $_FILES['file']['name'] = $_FILES['berkas']['name'][$i]; $_FILES['file']['type'] = $_FILES['berkas']['type'][$i]; $_FILES['file']['tmp_name'] = $_FILES['berkas']['tmp_name'][$i]; $_FILES['file']['error'] = $_FILES['berkas']['error'][$i]; $_FILES['file']['size'] = $_FILES['berkas']['size'][$i]; if($this->upload->do_upload('file')){ $uploadData = $this->upload->data(); $data['nama_berkas'] = $uploadData['file_name']; $data['keterangan_berkas'] = $keterangan_berkas[$i]; $data['tipe_berkas'] = $uploadData['file_ext']; $data['ukuran_berkas'] = $uploadData['file_size']; $this->db->insert('tb_berkas',$data); } } } redirect('upload'); } public function index() { $data['berkas'] = $this->db->get('tb_berkas'); $this->load->view('tampil_berkas',$data); } function download($id) { $data = $this->db->get_where('tb_berkas',['kd_berkas'=>$id])->row(); force_download('uploads/'.$data->nama_berkas,"berkas"); } } |
Keterangan :
Kita Menambahkan function download di line 54 – 58
1 |
function download($id) |
Pada function download kita menyertakan variabel $id sebagai parameter, variabel $id berisi nilai dari kd_berkas, dari berkas yang akan didownload
1 |
$data = $this->db->get_where('tb_berkas',['kd_berkas'=>$id])->row(); |
Line 56 kita membuat variabel $data untuk menyimpan record hasil query pada tabel tb_berkas dengan kd_berkas sesuai dengan nilai dari variabel $id
1 |
force_download('uploads/'.$data->nama_berkas,NULL); |
Line 57 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 :
- nama file yang akan didownload, nama file disini harus dilengkapi dengan lokasi dari filenya
- 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.
Testing Proses Upload
Untuk mencoba proses upload, gunakan alamat : http://localhost/multiupload/index.php/upload/create
dalam contoh ini kita upload file pada file 1,2,3 dan juga menyertakan keterangan
contohnya kita isikan berkas 1, 2, dan 3 disertai dengan keterangan, lalu kita klik simpan.
maka otomatis akan di redirect ke method index di controller upload, untuk menampilkan daftar 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
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
-
Tutorial Singkat Langsung Jago Framework Codeigniter
Rp98,000 Add to cart -
Tutorial Seminggu Jago Framework Codeigniter Dan Bootstrap
Rp90,000 Add to cart -
Tutorial Membangun Sistem Informasi Akademik Sekolah Dengan Codeigniter Dan Ajax
Rp145,000 Add to cart -
Tutorial Membangun Toko Online Responsive Dengan Codeigniter Dan Bootstrap
Rp135,000 Add to cart -
Tutorial Membangun Sistem Informasi Rumah Sakit Dengan Codeigniter MySQL Dan Ajax
Rp145,000 Add to cart -
Kursus Online – Pemrograman Web dan Android – Membuat Aplikasi Kasir
Rp300,000 Add to cart