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

yakinjp

yakinjp

rtp yakinjp

yakinjp

yakinjp

yakin jp

yakinjp id

maujp

maujp

maujp

\

sabung ayam online

sabung ayam online

SLOT MAHJONG

sabung ayam online

article 0000141

article 0000142

article 0000143

article 0000144

article 0000145

article 0000146

article 0000147

article 0000148

article 0000149

article 0000150

article 0000151

article 0000152

article 0000153

article 0000154

article 0000155

article 0000156

article 0000157

article 0000158

article 0000159

article 0000160

article 0000161

article 0000162

article 0000163

article 0000164

article 0000165

article 0000166

article 0000167

article 0000168

article 0000169

article 0000170

article 0000171

article 0000172

article 0000173

article 0000174

article 0000175

article 0000176

article 0000177

article 0000178

article 0000179

article 0000180

article 0000181

article 0000182

article 0000183

article 0000184

article 0000185

article 0000186

article 0000187

article 0000188

article 0000189

article 0000190

article 00046

article 00047

article 00048

article 00049

article 00050

article 00051

article 00052

article 00053

article 00054

article 00055

article 00056

article 00057

article 00058

article 00059

article 00060

article 00061

article 00062

article 00063

article 00064

article 00065

article 00066

article 00067

article 00068

article 00069

article 00070

article 00071

article 00072

article 00073

article 00074

article 00075

article 00076

article 00077

article 00078

article 00079

article 00080

article 00081

article 00082

article 00083

article 00084

article 00085

article 00086

article 00087

article 00088

article 00089

article 00090

article 00091

article 00092

article 00093

article 00094

article 00095

article 888836

article 888837

article 888838

article 888839

article 888840

article 888841

article 888842

article 888843

article 888844

article 888845

article 888846

article 888847

article 888848

article 888849

article 888850

article 888851

article 888852

article 888853

article 888854

article 888855

article 888856

article 888857

article 888858

article 888859

article 888860

article 888861

article 888862

article 888863

article 888864

article 888865

articel 000000171

articel 000000172

articel 000000173

articel 000000174

articel 000000175

articel 000000176

articel 000000177

articel 000000178

articel 000000179

articel 000000180

articel 000000181

articel 000000182

articel 000000183

articel 000000184

articel 000000185

articel 000000186

articel 000000187

articel 000000188

articel 000000189

articel 000000190

articel 000000191

articel 000000192

articel 000000193

articel 000000194

articel 000000195

articel 000000196

articel 000000197

articel 000000198

articel 000000199

articel 000000200

articel 000000201

articel 000000202

articel 000000203

articel 000000204

articel 000000205

articel 000000206

articel 000000207

articel 000000208

articel 000000209

articel 000000210

articel 000000211

articel 000000212

articel 000000213

articel 000000214

articel 000000215

articel 000000216

articel 000000217

articel 000000218

articel 000000219

articel 000000220

article 2000136

article 2000137

article 2000138

article 2000139

article 2000140

article 2000141

article 2000142

article 2000143

article 2000144

article 2000145

article 2000146

article 2000147

article 2000148

article 2000149

article 2000150

article 2000151

article 2000152

article 2000153

article 2000154

article 2000155

article 2000156

article 2000157

article 2000158

article 2000159

article 2000160

article 2000161

article 2000162

article 2000163

article 2000164

article 2000165

article 2000166

article 2000167

article 2000168

article 2000169

article 2000170

article 2000171

article 2000172

article 2000173

article 2000174

article 2000175

article 2000176

article 2000177

article 2000178

article 2000179

article 2000180

article 2000181

article 2000182

article 2000183

article 2000184

article 2000185

article 838000421

article 838000422

article 838000423

article 838000424

article 838000425

article 838000426

article 838000427

article 838000428

article 838000429

article 838000430

article 838000431

article 838000432

article 838000433

article 838000434

article 838000435

article 838000436

article 838000437

article 838000438

article 838000439

article 838000440

article 838000441

article 838000442

article 838000443

article 838000444

article 838000445

article 838000446

article 838000447

article 838000448

article 838000449

article 838000450

article 838000451

article 838000452

article 838000453

article 838000454

article 838000455

article 838000456

article 838000457

article 838000458

article 838000459

article 838000460

news-1701
news-1701

yakinjp

yakinjp

rtp yakinjp

yakinjp

yakinjp

yakin jp

yakinjp id

maujp

maujp

maujp

\

sabung ayam online

sabung ayam online

SLOT MAHJONG

sabung ayam online

article 0000141

article 0000142

article 0000143

article 0000144

article 0000145

article 0000146

article 0000147

article 0000148

article 0000149

article 0000150

article 0000151

article 0000152

article 0000153

article 0000154

article 0000155

article 0000156

article 0000157

article 0000158

article 0000159

article 0000160

article 0000161

article 0000162

article 0000163

article 0000164

article 0000165

article 0000166

article 0000167

article 0000168

article 0000169

article 0000170

article 0000171

article 0000172

article 0000173

article 0000174

article 0000175

article 0000176

article 0000177

article 0000178

article 0000179

article 0000180

article 0000181

article 0000182

article 0000183

article 0000184

article 0000185

article 0000186

article 0000187

article 0000188

article 0000189

article 0000190

article 00046

article 00047

article 00048

article 00049

article 00050

article 00051

article 00052

article 00053

article 00054

article 00055

article 00056

article 00057

article 00058

article 00059

article 00060

article 00061

article 00062

article 00063

article 00064

article 00065

article 00066

article 00067

article 00068

article 00069

article 00070

article 00071

article 00072

article 00073

article 00074

article 00075

article 00076

article 00077

article 00078

article 00079

article 00080

article 00081

article 00082

article 00083

article 00084

article 00085

article 00086

article 00087

article 00088

article 00089

article 00090

article 00091

article 00092

article 00093

article 00094

article 00095

article 888836

article 888837

article 888838

article 888839

article 888840

article 888841

article 888842

article 888843

article 888844

article 888845

article 888846

article 888847

article 888848

article 888849

article 888850

article 888851

article 888852

article 888853

article 888854

article 888855

article 888856

article 888857

article 888858

article 888859

article 888860

article 888861

article 888862

article 888863

article 888864

article 888865

articel 000000171

articel 000000172

articel 000000173

articel 000000174

articel 000000175

articel 000000176

articel 000000177

articel 000000178

articel 000000179

articel 000000180

articel 000000181

articel 000000182

articel 000000183

articel 000000184

articel 000000185

articel 000000186

articel 000000187

articel 000000188

articel 000000189

articel 000000190

articel 000000191

articel 000000192

articel 000000193

articel 000000194

articel 000000195

articel 000000196

articel 000000197

articel 000000198

articel 000000199

articel 000000200

articel 000000201

articel 000000202

articel 000000203

articel 000000204

articel 000000205

articel 000000206

articel 000000207

articel 000000208

articel 000000209

articel 000000210

articel 000000211

articel 000000212

articel 000000213

articel 000000214

articel 000000215

articel 000000216

articel 000000217

articel 000000218

articel 000000219

articel 000000220

article 2000136

article 2000137

article 2000138

article 2000139

article 2000140

article 2000141

article 2000142

article 2000143

article 2000144

article 2000145

article 2000146

article 2000147

article 2000148

article 2000149

article 2000150

article 2000151

article 2000152

article 2000153

article 2000154

article 2000155

article 2000156

article 2000157

article 2000158

article 2000159

article 2000160

article 2000161

article 2000162

article 2000163

article 2000164

article 2000165

article 2000166

article 2000167

article 2000168

article 2000169

article 2000170

article 2000171

article 2000172

article 2000173

article 2000174

article 2000175

article 2000176

article 2000177

article 2000178

article 2000179

article 2000180

article 2000181

article 2000182

article 2000183

article 2000184

article 2000185

article 838000421

article 838000422

article 838000423

article 838000424

article 838000425

article 838000426

article 838000427

article 838000428

article 838000429

article 838000430

article 838000431

article 838000432

article 838000433

article 838000434

article 838000435

article 838000436

article 838000437

article 838000438

article 838000439

article 838000440

article 838000441

article 838000442

article 838000443

article 838000444

article 838000445

article 838000446

article 838000447

article 838000448

article 838000449

article 838000450

article 838000451

article 838000452

article 838000453

article 838000454

article 838000455

article 838000456

article 838000457

article 838000458

article 838000459

article 838000460

news-1701
content-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 888000081

article 888000082

article 888000083

article 888000084

article 888000085

article 888000086

article 888000087

article 888000088

article 888000089

article 888000090

article 888000091

article 888000092

article 888000093

article 888000094

article 888000095

article 888000096

article 888000097

article 888000098

article 888000099

article 888000100

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

cuaca 898100146

cuaca 898100147

cuaca 898100148

cuaca 898100149

cuaca 898100150

cuaca 898100151

cuaca 898100152

cuaca 898100153

cuaca 898100154

cuaca 898100155

cuaca 898100156

cuaca 898100157

cuaca 898100158

cuaca 898100159

cuaca 898100160

cuaca 898100161

cuaca 898100162

cuaca 898100163

cuaca 898100164

cuaca 898100165

cuaca 898100166

cuaca 898100167

cuaca 898100168

cuaca 898100169

cuaca 898100170

cuaca 898100171

cuaca 898100172

cuaca 898100173

cuaca 898100174

cuaca 898100175

article 710000151

article 710000152

article 710000153

article 710000154

article 710000155

article 710000156

article 710000157

article 710000158

article 710000159

article 710000160

article 710000161

article 710000162

article 710000163

article 710000164

article 710000165

article 710000166

article 710000167

article 710000168

article 710000169

article 710000170

article 710000171

article 710000172

article 710000173

article 710000174

article 710000175

article 710000176

article 710000177

article 710000178

article 710000179

article 710000180

article 710000181

article 710000182

article 710000183

article 710000184

article 710000185

article 710000186

article 710000187

article 710000188

article 710000189

article 710000190

article 710000191

article 710000192

article 710000193

article 710000194

article 710000195

article 710000196

article 710000197

article 710000198

article 710000199

article 710000200

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

psda 438000081

psda 438000082

psda 438000083

psda 438000084

psda 438000085

psda 438000086

psda 438000087

psda 438000088

psda 438000089

psda 438000090

psda 438000091

psda 438000092

psda 438000093

psda 438000094

psda 438000095

psda 438000096

psda 438000097

psda 438000098

psda 438000099

psda 438000100

psda 438000101

psda 438000102

psda 438000103

psda 438000104

psda 438000105

psda 438000106

psda 438000107

psda 438000108

psda 438000109

content-1701