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

sabung ayam online

sabung ayam online

judi bola online

sabung ayam online

judi bola online

slot mahjong ways

slot mahjong

sabung ayam online

judi bola

live casino

sabung ayam online

judi bola

live casino

SGP Pools

slot mahjong

sabung ayam online

slot mahjong

SLOT THAILAND

article 138000571

article 138000572

article 138000573

article 138000574

article 138000575

article 138000576

article 138000577

article 138000578

article 138000579

article 138000580

article 138000581

article 138000582

article 138000583

article 138000584

article 138000585

article 138000586

article 138000587

article 138000588

article 138000589

article 138000590

article 138000591

article 138000592

article 138000593

article 138000594

article 138000595

article 138000596

article 138000597

article 138000598

article 138000599

article 138000600

article 138000601

article 138000602

article 138000603

article 138000604

article 138000605

article 138000606

article 138000607

article 138000608

article 138000609

article 138000610

article 138000611

article 138000612

article 138000613

article 138000614

article 138000615

article 138000616

article 138000617

article 138000618

article 138000619

article 138000620

article 138000621

article 138000622

article 138000623

article 138000624

article 138000625

article 138000626

article 138000627

article 138000628

article 138000629

article 138000630

article 138000631

article 138000632

article 138000633

article 138000634

article 138000635

article 138000636

article 138000637

article 138000638

article 138000639

article 138000640

article 138000641

article 138000642

article 138000643

article 138000644

article 138000645

article 158000426

article 158000427

article 158000428

article 158000429

article 158000430

article 158000436

article 158000437

article 158000438

article 158000439

article 158000440

article 208000456

article 208000457

article 208000458

article 208000459

article 208000460

article 208000461

article 208000462

article 208000463

article 208000464

article 208000465

article 208000466

article 208000467

article 208000468

article 208000469

article 208000470

208000446

208000447

208000448

208000449

208000450

208000451

208000452

208000453

208000454

208000455

article 228000306

article 228000307

article 228000308

article 228000309

article 228000310

article 228000311

article 228000312

article 228000313

article 228000314

article 228000315

article 238000291

article 238000292

article 238000293

article 238000294

article 238000295

article 238000296

article 238000297

article 238000298

article 238000299

article 238000300

article 238000301

article 238000302

article 238000303

article 238000304

article 238000305

article 238000306

article 238000307

article 238000308

article 238000309

article 238000310

article 238000311

article 238000312

article 238000313

article 238000314

article 238000315

article 238000316

article 238000317

article 238000318

article 238000319

article 238000320

article 238000321

article 238000322

article 238000323

article 238000324

article 238000325

article 238000326

article 238000327

article 238000328

article 238000329

article 238000330

article 238000331

article 238000332

article 238000333

article 238000334

article 238000335

article 238000336

article 238000337

article 238000338

article 238000339

article 238000340

article 238000341

article 238000342

article 238000343

article 238000344

article 238000345

article 238000346

article 238000347

article 238000348

article 238000349

article 238000350

sumbar-238000276

sumbar-238000277

sumbar-238000278

sumbar-238000279

sumbar-238000280

sumbar-238000281

sumbar-238000282

sumbar-238000283

sumbar-238000284

sumbar-238000285

sumbar-238000286

sumbar-238000287

sumbar-238000288

sumbar-238000289

sumbar-238000290

sumbar-238000291

sumbar-238000292

sumbar-238000293

sumbar-238000294

sumbar-238000295

sumbar-238000296

sumbar-238000297

sumbar-238000298

sumbar-238000299

sumbar-238000300

sumbar-238000301

sumbar-238000302

sumbar-238000303

sumbar-238000304

sumbar-238000305

sumbar-238000306

sumbar-238000307

sumbar-238000308

sumbar-238000309

sumbar-238000310

sumbar-238000311

sumbar-238000312

sumbar-238000313

sumbar-238000314

sumbar-238000315

sumbar-238000316

sumbar-238000317

sumbar-238000318

sumbar-238000319

sumbar-238000320

sumbar-238000321

sumbar-238000322

sumbar-238000323

sumbar-238000324

sumbar-238000325

sumbar-238000326

sumbar-238000327

sumbar-238000328

sumbar-238000329

sumbar-238000330

sumbar-238000331

sumbar-238000332

sumbar-238000333

sumbar-238000334

sumbar-238000335

sumbar-238000336

sumbar-238000337

sumbar-238000338

sumbar-238000339

sumbar-238000340

sumbar-238000341

sumbar-238000342

sumbar-238000343

sumbar-238000344

sumbar-238000345

sumbar-238000346

sumbar-238000347

sumbar-238000348

sumbar-238000349

sumbar-238000350

news-1701