Cara Upload File Dengan Codeigniter Dengan Mudah

Created at by Aris Munandar

Pada tutorial kali ini kita akan membahas bagaimana cara upload file dengan codeigniter dan menyimpan ke database, file yang dimaksudnya dapat berupa file dokumen ataupun gambar, dan menyimpannya ke dalam database sehingga mudah untuk di tampilkan dan di unduh kembali.

Cara Upload Dengan Codeigniter

Berikut ini adalah cara upload file dengan codeigniter dan menyimpannya ke dalam database. Tutorial ini akan dibahas step-by-step beserta gambar untuk mempermudah dalam belajar upload file dengan codeigniter.

Step 1: Download Codeigniter & Install Codeigniter

Langkah pertama adalah siapkan dulu codeigniter, karna ditutorial kali ini menggunakan codeigniter versi 3 maka silahkan anda download codeigniter versi 3.

http://codeigniter.com/download

Perhatikan gambar dibawah ini:

Cara upload dengan codeigniter

Jika sudah selesai mengunduh codeigniter versi 3 selanjutnya silahkan ekstrak file tersebut didalam folder web server anda, dan beri nama folder tersebut dengan nama ci-upload, sehingga nantinya akan bisa di akses dengan url localhost/ci-upload.

Jika sudah anda ekstrak dan diletakan didalam folder web server maka anda silahkan ketik di url browser dengan url localhost/ci-upload, jika sudah berhasil maka seharusnya akan muncul seperti tampilan dibawah ini.

tampilan pembuka codeigniter - cara upload dengan codeigniter

Step 2: Membuat Database Upload

Jika codeigniter sudah berhasil anda install selanjutnya membuat database untuk menyimpan data-data file yang akan di upload, sehingga dapat di tampilkan.

Buatlah database dengan nama ci_upload:

CREATE DATABASE ci_upload;

Lalu buat tabel dengan script dibawah ini:

CREATE TABLE upload(
     id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
     nama_file VARCHAR(200) NOT NULL,
     tipe_file VARCHAR(50) NOT NULL,
     ukuran_file VARCHAR(10) NOT NULL,
     tanggal_upload TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

Step 3: Mengatur Konfigurasi 

Pertama-tama yang perlu kita lakukan adalah mengatur konfigurasi, pada tutorial ini sangat mudah sekali tidak tidak perlu memerlukan banyak konfigurasi, kecuali jika proyek anda sudah besar tentunya akan banyak konfigurasi-konfigurasi yang diperlukan sesuai dengan kebutuhan. Didalam tutorial ini hanyalah membutuhan modul session dan database sehingga anda hanya perlu menentukan path session dimana lokasi session akan disimpan dan sambungan database anda.

Buka file /application/config/config.php, lalu cari $config['sess_save_path'] dan ubah seperti kode dibawah ini:

$config['sess_save_path'] = sys_get_temp_dir();Code language: PHP (php)

Selanjutnya membuat konfigurasi database.

Buka file /application/config/autoload.php lalu cari kode $autoload['libraries'] dan ubah menjadi seperti dibawah ini:

$autoload['libraries'] = array('database');Code language: PHP (php)

Selanjutnya buka file /application/config/database.php lalu atur konfigurasi database anda.

$db['default'] = array(
     ...
     'hostname' => 'localhost',
     'username' => 'username database anda',
     'password' => 'password database anda',
     'database' => 'ci_upload',
     ...
);Code language: PHP (php)

Step 4: Membuat Controller

Buatlah sebuah file dengan nama Upload_Controller.php di folder /application/controllers/ lalu masukkan kode dibawah ini:

<?php if(!defined('BASEPATH')) exit ('No direct script access allowed');

class Upload_Controller extends CI_Controller 
{
     public function __construct()
     {
          parent::__construct();

          // Load models
          $this->load->model('upload_model');

          // Load helpers
          $this->load->helper('url');

          // Load libraries
          $this->load->library('session');
          $this->load->library('form_validation');
     }

     public function index()
     {
          $data['uploads'] = $this->upload_model->all();

          $this->load->view('upload_view', $data);
     }

     public function upload()
     {
          $config['upload_path'] = './upload';
          $config['allowed_types'] = 'jpg|jpeg|png|svg';
          $config['max_size'] = 3000;

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

          if($this->upload->do_upload('file')) {

               $fileData = $this->upload->data();

               $upload = [
                    'nama_file' => $fileData['file_name'],
                    'tipe_file' => $fileData['file_type'],
                    'ukuran_file' => $fileData['file_size'],
               ];

               if($this->upload_model->insert($upload)) {
                    $this->session->set_flashdata('success', '<p>Selamat! Anda berhasil mengunggah file <strong>'. $fileData['file_name'] .'</strong></p>');
               } else {
                    $this->session->set_flashdata('error', '<p>Gagal! File '. $fileData['file_name'] .' tidak berhasil tersimpan di database anda</p>');
               }

               redirect(base_url('upload'));
          } else {
               $this->session->set_flashdata('error', $this->upload->display_errors());
               redirect(base_url('upload'));
          }
     }
}Code language: HTML, XML (xml)

Perhatikan pada bagian $config['upload_path'] = './upload', letak lokasi file-file yang anda  update akan tersimpan dan berada di dalam folder root CI anda dengan nama folder /upload maka dari itu silahkan buat folder nama nama upload didalam folder root CI anda.

Lalu pada bagian $config['allowed_types'] = 'jpg|jpeg|png|svg' anda dapat menentukan filter jenis-jenis file apa saja yang boleh di upload dengan cara menambahkan |ekstensi_file sesuai denga keinginan anda.

Step 5: Membuat Model

Pada step ini kita akan membuat model yang fungsinya untuk melakukan penulisan data di dalam database upload anda. Buatlah file dengan nama Upload_Model.php di folder /application/models/ setelah itu masukkan kode dibawah ini:

<?php if(!defined('BASEPATH')) exit('No direct script access allowed');

class Upload_model extends CI_Model
{
     public function all()
     {
          $this->db->select('*');
          $this->db->from('upload');
          $this->db->order_by('tanggal_upload', 'DESC');

          return $this->db->get();
     }

     public function insert($data)
     {
          $this->db->insert('upload', $data);

          return ($this->db->affected_rows() > 0) ? true : false;
     }
}Code language: HTML, XML (xml)

Step 6: Membuat Tampilan Form Upload

Pada step terakhir ini adalah bagian tampilan, untuk memudahkan penggunaan penulis membuat tampilan antar muka yang sangat sederhana, dengan tujuan agar mudah di modifikasi oleh anda.

Buatlah sebuah file dengan nama upload_view.php didalam folder /application/view lalu masukkan kode dibawah ini:

<!DOCTYPE html>
<html>
<head>
     <title>Tutorial Cara Upload Dengan Codeigniter</title>
     <style type="text/css">
          *, *::before, *::after {
               box-sizing: border-box;
          }
          body {
               margin: 0;
               padding: 0;
          }
          h1 {
               text-align: center;
          }
          form {
               position: relative;
               width: 50%;
               margin: 20px auto;
               padding: 20px;
               background-color: #f1f1f1;
               border: 1px solid #eeeeee;
               margin: 0 auto;
               border-radius: 4px;
               text-align: center;
          }
          .alert-success,
          .alert-danger {
               border-radius: 4px;
               padding: 5px 20px;
               width: 50%;
               margin: 20px auto 0 auto;
               color: #ffffff;
          }
          .alert-success {
               background-color: #5cb85c;
          }
          .alert-danger {
               background-color: #d9534f;
          }
          .file-list {
               width: 50%;
               margin: 20px auto;
          }
          .file-list table {
               width: 100%;
               margin: 0;
               padding: 0;
          }
          .file-list table thead tr th {
               border-top: 1px solid #dddddd;
               border-bottom: 1px solid #dddddd;
               border-left: 1px solid #dddddd;
               background-color: #f1f1f1;
               padding: 5px 10px;
          }
          .file-list table thead tr th:last-child {
               border-right: 1px solid #dddddd;
          }
          .file-list table tbody tr td {
               border-bottom: 1px solid #dddddd;
               border-left: 1px solid #dddddd;
               padding: 5px 10px;
          }
          .file-list table tbody tr td:last-child {
               border-right: 1px solid #dddddd;
          }
     </style>
</head>
<body>
     <h1>Cara Upload Dengan Codeigniter</h1>
     <form method="POST" action="<?php echo base_url('upload/upload') ?>" enctype="multipart/form-data">
          <input type="file" name="file">
          <button type="submit">Upload</button>
     </form>
     <?php if($this->session->flashdata('success')): ?>
          <div class="alert-success">
               <?php echo $this->session->flashdata('success'); ?>
          </div>
     <?php endif; ?>
     <?php if($this->session->flashdata('error')): ?>
          <div class="alert-danger">
               <?php echo $this->session->flashdata('error'); ?>
          </div>
     <?php endif; ?>
     <div class="file-list">
          <table cellpadding="0" cellspacing="0">
               <thead>
                    <tr>
                         <th style="width: 5%; text-align: center; vertical-align: middle;">No</th>
                         <th style="width: 80%; text-align: left; vertical-align: middle;">Nama File</th>
                         <th style="width: 15%; text-align: center; vertical-align: middle;">Download</th>
                    </tr>
               </thead>
               <tbody>
               <?php if($uploads->num_rows() > 0): ?>
                    <?php $nomor = 1; ?>
                    <?php foreach($uploads->result() as $file): ?>
                          <tr>
                              <td style="text-align: center; vertical-align: middle;"><?php echo $nomor++; ?></td>
                              <td style="text-align: left; vertical-align: middle;"><?php echo $file->nama_file; ?></td>
                              <td style="text-align: center; vertical-align: middle;">
                                   <a href="<?php echo base_url('upload/' . $file->nama_file) ?>" download>Download</a>
                               </td>
                         </tr>
                    <?php endforeach; ?>
               <?php else: ?>
                    <tr>
                         <td style="text-align: center; vertical-align: middle;" colspan="3">Tidak ada data</td>
                    </tr>
                <?php endif; ?>
               </tbody>
          </table>
     </div>
</body>
</html>Code language: HTML, XML (xml)

Step 6: Mengatur Routes Codeigniter

Selanjutnya mengatur route, fungsi route ini adalah untuk menentukan atau memanipulasi url yang ditampilkan pada url browser.

Buka file routes.php di dalam folder /application/config/ lalu masukkan kode dibawah ini di paling akhir di dalam file routes tersebut.

$route['upload'] = 'upload_controller/index';
$route['upload/upload'] = 'upload_controller/upload';Code language: PHP (php)

Step 7: Melakukan Pengetesan

Selanjutnya pada step terakhir adalah anda hanya tinggal melakukan testing pada kode yang tadi anda buat, berikut ini tampilan apabila anda mengaksesnya melalui http://localhost/ci-upload:

Tampilan upload codeigniter - cara upload dengan codeigniter

Tampilan tersebut sangat sederhana sekali, karena memang tujuan penulis adalah agar anda dapat melakukan perubahan, modifikasi yang lebih baik lagi yang mungkin berguna untuk proyek anda kedepannya, semoga tutorial cara upload dengan codeigniter ini dapat bermanfaat.

6 Comments

fadli

fadli

pas klik upload langsung kya gni, The requested URL was not found on this server.
Reply #2078
Aris Munandar

Aris Munandar

@fadli
kemungkinan ada kesalahan di route kak, tidak menunjukan path yang betul.
Reply #2079
pointxx

pointxx

boleh minta source codenya bang?
Reply #2092
Aris Munandar

Aris Munandar

@pointxx
tidak ada
Reply #2093
Agus Pranata

Agus Pranata

Cara nampilkan gambarnya langsung bagaimana?
Reply #2400
Aris Munandar

Aris Munandar

@Agus Pranata
Untuk menampilkan gambar secara langsung setelah di upload gunakan tag , diarahkan ke direktori atau url gambar yang sudah di upload tersebut.
Reply #2401

Leave comment

Alamat email Anda tidak akan dipublikasikan. Required fields are marked *

news-1701

sabung ayam online

yakinjp

yakinjp

rtp yakinjp

slot thailand

yakinjp

yakinjp

yakin jp

yakinjp id

maujp

maujp

maujp

maujp

slot mahjong

SGP Pools

slot mahjong

sabung ayam online

slot mahjong

SLOT THAILAND

psda 438000021

psda 438000022

psda 438000023

psda 438000024

psda 438000025

psda 438000026

psda 438000027

psda 438000028

psda 438000029

psda 438000030

psda 438000031

psda 438000032

psda 438000033

psda 438000034

psda 438000035

psda 438000036

psda 438000037

psda 438000038

psda 438000039

psda 438000040

psda 438000041

psda 438000042

psda 438000043

psda 438000044

psda 438000045

psda 438000046

psda 438000047

psda 438000048

psda 438000049

psda 438000050

psda 438000051

psda 438000052

psda 438000053

psda 438000054

psda 438000055

psda 438000056

psda 438000057

psda 438000058

psda 438000059

psda 438000060

psda 438000061

psda 438000062

psda 438000063

psda 438000064

psda 438000065

psda 438000066

psda 438000067

psda 438000068

psda 438000069

psda 438000070

psda 438000071

psda 438000072

psda 438000073

psda 438000074

psda 438000075

psda 438000076

psda 438000077

psda 438000078

psda 438000079

psda 438000080

cuaca 638000086

cuaca 638000087

cuaca 638000088

cuaca 638000089

cuaca 638000090

cuaca 638000091

cuaca 638000092

cuaca 638000093

cuaca 638000094

cuaca 638000095

cuaca 638000096

cuaca 638000097

cuaca 638000098

cuaca 638000099

cuaca 638000100

cuaca 638000101

cuaca 638000102

cuaca 638000103

cuaca 638000104

cuaca 638000105

article 710000111

article 710000112

article 710000113

article 710000114

article 710000115

article 710000116

article 710000117

article 710000118

article 710000119

article 710000120

article 710000121

article 710000122

article 710000123

article 710000124

article 710000125

article 710000126

article 710000127

article 710000128

article 710000129

article 710000130

article 710000131

article 710000132

article 710000133

article 710000134

article 710000135

article 710000136

article 710000137

article 710000138

article 710000139

article 710000140

article 710000141

article 710000142

article 710000143

article 710000144

article 710000145

article 710000146

article 710000147

article 710000148

article 710000149

article 710000150

article 710000151

article 710000152

article 710000153

article 710000154

article 710000155

article 710000156

article 710000157

article 710000158

article 710000159

article 710000160

article 999990051

article 999990052

article 999990053

article 999990054

article 999990055

article 999990056

article 999990057

article 999990058

article 999990059

article 999990060

article 999990061

article 999990062

article 999990063

article 999990064

article 999990065

article 999990066

article 999990067

article 999990068

article 999990069

article 999990070

article 999990071

article 999990072

article 999990073

article 999990074

article 999990075

cuaca 898100116

cuaca 898100117

cuaca 898100118

cuaca 898100119

cuaca 898100120

cuaca 898100121

cuaca 898100122

cuaca 898100123

cuaca 898100124

cuaca 898100125

cuaca 898100126

cuaca 898100127

cuaca 898100128

cuaca 898100129

cuaca 898100130

cuaca 898100131

cuaca 898100132

cuaca 898100133

cuaca 898100134

cuaca 898100135

cuaca 898100136

cuaca 898100137

cuaca 898100138

cuaca 898100139

cuaca 898100140

cuaca 898100141

cuaca 898100142

cuaca 898100143

cuaca 898100144

cuaca 898100145

news-1701
news-1701

sabung ayam online

yakinjp

yakinjp

rtp yakinjp

slot thailand

yakinjp

yakinjp

yakin jp

yakinjp id

maujp

maujp

maujp

maujp

slot mahjong

SGP Pools

slot mahjong

sabung ayam online

slot mahjong

SLOT THAILAND

psda 438000021

psda 438000022

psda 438000023

psda 438000024

psda 438000025

psda 438000026

psda 438000027

psda 438000028

psda 438000029

psda 438000030

psda 438000031

psda 438000032

psda 438000033

psda 438000034

psda 438000035

psda 438000036

psda 438000037

psda 438000038

psda 438000039

psda 438000040

psda 438000041

psda 438000042

psda 438000043

psda 438000044

psda 438000045

psda 438000046

psda 438000047

psda 438000048

psda 438000049

psda 438000050

psda 438000051

psda 438000052

psda 438000053

psda 438000054

psda 438000055

psda 438000056

psda 438000057

psda 438000058

psda 438000059

psda 438000060

psda 438000061

psda 438000062

psda 438000063

psda 438000064

psda 438000065

psda 438000066

psda 438000067

psda 438000068

psda 438000069

psda 438000070

psda 438000071

psda 438000072

psda 438000073

psda 438000074

psda 438000075

psda 438000076

psda 438000077

psda 438000078

psda 438000079

psda 438000080

cuaca 638000086

cuaca 638000087

cuaca 638000088

cuaca 638000089

cuaca 638000090

cuaca 638000091

cuaca 638000092

cuaca 638000093

cuaca 638000094

cuaca 638000095

cuaca 638000096

cuaca 638000097

cuaca 638000098

cuaca 638000099

cuaca 638000100

cuaca 638000101

cuaca 638000102

cuaca 638000103

cuaca 638000104

cuaca 638000105

article 710000111

article 710000112

article 710000113

article 710000114

article 710000115

article 710000116

article 710000117

article 710000118

article 710000119

article 710000120

article 710000121

article 710000122

article 710000123

article 710000124

article 710000125

article 710000126

article 710000127

article 710000128

article 710000129

article 710000130

article 710000131

article 710000132

article 710000133

article 710000134

article 710000135

article 710000136

article 710000137

article 710000138

article 710000139

article 710000140

article 710000141

article 710000142

article 710000143

article 710000144

article 710000145

article 710000146

article 710000147

article 710000148

article 710000149

article 710000150

article 710000151

article 710000152

article 710000153

article 710000154

article 710000155

article 710000156

article 710000157

article 710000158

article 710000159

article 710000160

article 999990051

article 999990052

article 999990053

article 999990054

article 999990055

article 999990056

article 999990057

article 999990058

article 999990059

article 999990060

article 999990061

article 999990062

article 999990063

article 999990064

article 999990065

article 999990066

article 999990067

article 999990068

article 999990069

article 999990070

article 999990071

article 999990072

article 999990073

article 999990074

article 999990075

cuaca 898100116

cuaca 898100117

cuaca 898100118

cuaca 898100119

cuaca 898100120

cuaca 898100121

cuaca 898100122

cuaca 898100123

cuaca 898100124

cuaca 898100125

cuaca 898100126

cuaca 898100127

cuaca 898100128

cuaca 898100129

cuaca 898100130

cuaca 898100131

cuaca 898100132

cuaca 898100133

cuaca 898100134

cuaca 898100135

cuaca 898100136

cuaca 898100137

cuaca 898100138

cuaca 898100139

cuaca 898100140

cuaca 898100141

cuaca 898100142

cuaca 898100143

cuaca 898100144

cuaca 898100145

news-1701
news-1701

sabung ayam online

yakinjp

yakinjp

rtp yakinjp

slot thailand

yakinjp

yakinjp

yakin jp

yakinjp id

maujp

maujp

maujp

maujp

slot mahjong

SGP Pools

slot mahjong

sabung ayam online

slot mahjong

SLOT THAILAND

article 710000011

article 710000012

article 710000013

article 710000014

article 710000015

article 710000016

article 710000017

article 710000018

article 710000019

article 710000020

article 710000021

article 710000022

article 710000023

article 710000024

article 710000025

article 710000026

article 710000027

article 710000028

article 710000029

article 710000030

article 710000031

article 710000032

article 710000033

article 710000034

article 710000035

article 710000036

article 710000037

article 710000038

article 710000039

article 710000040

article 710000041

article 710000042

article 710000043

article 710000044

article 710000045

article 710000046

article 710000047

article 710000048

article 710000049

article 710000050

article 710000051

article 710000052

article 710000053

article 710000054

article 710000055

article 710000056

article 710000057

article 710000058

article 710000059

article 710000060

kasus 898100001

kasus 898100002

kasus 898100003

kasus 898100004

kasus 898100005

kasus 898100006

kasus 898100007

kasus 898100008

kasus 898100009

kasus 898100010

kasus 898100011

kasus 898100012

kasus 898100013

kasus 898100014

kasus 898100015

kasus 898100016

kasus 898100017

kasus 898100018

kasus 898100019

kasus 898100020

kasus 898100021

kasus 898100022

kasus 898100023

kasus 898100024

kasus 898100025

kasus 898100026

kasus 898100027

kasus 898100028

kasus 898100029

kasus 898100030

kasus 898100031

kasus 898100032

kasus 898100033

kasus 898100034

kasus 898100035

kasus 898100036

kasus 898100037

kasus 898100038

kasus 898100039

kasus 898100040

cuaca 898100001

cuaca 898100002

cuaca 898100003

cuaca 898100004

cuaca 898100005

cuaca 898100006

cuaca 898100007

cuaca 898100008

cuaca 898100009

cuaca 898100010

cuaca 898100011

cuaca 898100012

cuaca 898100013

cuaca 898100014

cuaca 898100015

cuaca 898100016

cuaca 898100017

cuaca 898100018

cuaca 898100019

cuaca 898100020

cuaca 898100021

cuaca 898100022

cuaca 898100023

cuaca 898100024

cuaca 898100025

cuaca 898100026

cuaca 898100027

cuaca 898100028

cuaca 898100029

cuaca 898100030

cuaca 898100031

cuaca 898100032

cuaca 898100033

cuaca 898100034

cuaca 898100035

cuaca 898100036

cuaca 898100037

cuaca 898100038

cuaca 898100039

cuaca 898100040

article 868000011

article 868000012

article 868000013

article 868000014

article 868000015

article 868000016

article 868000017

article 868000018

article 868000019

article 868000020

article 868100021

article 868100022

article 868100023

article 868100024

article 868100025

article 868100026

article 868100027

article 868100028

article 868100029

article 868100030

article 868100031

article 868100032

article 868100033

article 868100034

article 868100035

article 868100036

article 868100037

article 868100038

article 868100039

article 868100040

article 868100041

article 868100042

article 868100043

article 868100044

article 868100045

article 868100046

article 868100047

article 868100048

article 868100049

article 868100050

article 868100051

article 868100052

article 868100053

article 868100054

article 868100055

article 868100056

article 868100057

article 868100058

article 868100059

article 868100060

article 878000011

article 878000012

article 878000013

article 878000014

article 878000015

article 878000016

article 878000017

article 878000018

article 878000019

article 878000020

article 878800021

article 878800022

article 878800023

article 878800024

article 878800025

article 878800026

article 878800027

article 878800028

article 878800029

article 878800030

article 878800031

article 878800032

article 878800033

article 878800034

article 878800035

article 878800036

article 878800037

article 878800038

article 878800039

article 878800040

article 888000031

article 888000032

article 888000033

article 888000034

article 888000035

article 888000036

article 888000037

article 888000038

article 888000039

article 888000040

article 888000041

article 888000042

article 888000043

article 888000044

article 888000045

article 888000046

article 888000047

article 888000048

article 888000049

article 888000050

article 888000051

article 888000052

article 888000053

article 888000054

article 888000055

article 888000056

article 888000057

article 888000058

article 888000059

article 888000060

article 888000061

article 888000062

article 888000063

article 888000064

article 888000065

article 888000066

article 888000067

article 888000068

article 888000069

article 888000070

article 328000601

article 328000602

article 328000603

article 328000604

article 328000605

article 328000606

article 328000607

article 328000608

article 328000609

article 328000610

article 328000611

article 328000612

article 328000613

article 328000614

article 328000615

article 328000616

article 328000617

article 328000618

article 328000619

article 328000620

article 328000621

article 328000622

article 328000623

article 328000624

article 328000625

article 328000626

article 328000627

article 328000628

article 328000629

article 328000630

article 328000631

article 328000632

article 328000633

article 328000634

article 328000635

article 328000636

article 328000637

article 328000638

article 328000639

article 328000640

article 328000641

article 328000642

article 328000643

article 328000644

article 328000645

article 328000646

article 328000647

article 328000648

article 328000649

article 328000650

article 999990001

article 999990002

article 999990003

article 999990004

article 999990005

article 999990006

article 999990007

article 999990008

article 999990009

article 999990010

article 999990011

article 999990012

article 999990013

article 999990014

article 999990015

article 999990016

article 999990017

article 999990018

article 999990019

article 999990020

news-1701