Membuat multiple upload di Codeigniter versi 2.X dan 3.X

Berawal dari pertanyaan salah seorang teman tentang multiple upload pada codeigniter ternyata memiliki perbedaan. Perbedaan pertama adalah dari versi Codeigniter yang digunakan dan jenis library MY_Upload.php

Disini saya akan mencoba menjelaskan penerapan dari library MY_Upload.php pada Codeigniter versi 2.X dan 3.X. Saya harap anda mengikuti setiap step yang saya jelaskan disini.

Sebelum ke praktek, coba anda persiapkan terlebih dahulu file-file yang dibutuhkan.

  1. Download Codeigniter Framework (versi 2.x atau 3.x) disini
  2. Download Library MY_Upload untuk CI 2.X disini
  3. Download Library MY_Upload untuk Codeigniter 3.X disini
  4. Download dan install XAMPP disini

Jika semua bahan yang dibutuhkan sudah didapat langkah berikutnya adalah penerapan library MY_Upload.

Untuk Codeigniter versi 2.X :

1. Jangan lupa untuk me-load helper form dan url. Tambahkan script ini di dalam function Construct

$this->load->helper(array('form', 'url'));

2. Copy-kan library MY_Upload.php ke dalam folder application/libraries

3. Buat folder uploads sejajar dengan folder application

upload-folder-codeigniter

4. Buat file controller upload.php kemudian masukkan script php dibawah ini :

<?php
class Upload extends CI_Controller {
 
 function __construct()
 {
  parent::__construct();
  $this->load->helper(array('form', 'url'));
 }
 
 function index()
 {
  $this->load->view('upload_form_multi_1');
   }
        
        function do_upload_multi()
  {        
              $this->load->library('upload');
  
       //Configure upload.
              $this->upload->initialize(array(
   "allowed_types" => "gif|jpg|png|jpeg",
                 "upload_path"   => "./uploads/"
              ));
        
              //Perform upload.
              if($this->upload->do_multi_upload("images")) {
                  $data['data'] = $this->upload->get_multi_upload_data();
                  echo '<pre>';
                  var_export($data);
                  echo '</pre>';
              }else{
      die('GAGAL UPLOAD');
       }
  }
}
?>

5. Buat file view upload_form_multi_1.php

<html>
<head>
<title>Upload Form | Codeigniter 2.X</title>
</head>
<body>

<?php echo form_open_multipart('upload/do_upload_multi_1');?>

<h2>For Multiple Upload Codeigniter 2.X</h2>
<div style="border: 1px dotted #000;margin:10px 0;padding:10px;">
<input type="file" name="images[]" />
<input type="file" name="images[]"/>
<input type="file" name="images[]"/>
</div>

<br /><br />

<input type="submit" value="upload" name="upload" />

</form>

</body>
</html>

6. Tampilan image array setelah berhasil upload

hasil-upload-codeigniter

7. Coba buka file controller anda dan upload beberapa gambar, jika berhasil image akan terupload ke dalam folder uploads seperti gambar dibawah ini.

gambar-terupload-codeigniter

sedangkan untuk Codeigniter versi 3.X keatas ada library tersendiri untuk menangani multiple upload ini. Oiya..jika anda baru upgrade ke CI versi 3.X ada perbedaan dalam penulisan nama controller. Pada CI versi 3.X keatas penulisan nama file Controller dan Class harus diawali dengan huruf Kapital. Jika belum terbiasa dengan CI versi 3.X anda bisa membaca dokumentasinya terlebih dahulu.

Untuk Codeigniter versi 3.X :

1. Langkah 1-2 hampir sama dengan Codeigniter versi 2.X bedanya hanya pada library MY_Upload.php

2. Buat juga file controller Upload.php kemudian masukkan script berikut :

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

class Upload extends CI_Controller {

 public function __construct()
    {
        parent::__construct();
        $this->load->helper(array('form', 'url'));
    }

 public function index()
 {
  $this->load->view('upload_form_multi_2');
 }
 
 function do_upload_multi()
 {        
             $this->load->library('upload');
  
      //Configure upload.
             $this->upload->initialize(array(
   "allowed_types" => "gif|jpg|png|jpeg",
                 "upload_path"   => "./uploads/"
             ));
        
             //Perform upload.
             if($this->upload->do_upload("images")) {
                 $uploaded = $this->upload->data();
                 echo '<pre>';
   var_export($uploaded);
   echo '</pre>';
             }else{
   die('GAGAL UPLOAD');
      }
 }
}

3. Buat file view upload_form_multi_2.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<!DOCTYPE html>
<HTML>
<head>
<title>Welcome to CodeIgniter 3.X | Multiple Upload File</title>
</head>
<body>

<?php echo form_open_multipart('upload/do_upload_multi_2');?>

<h2>For Multiple Upload Codeigniter 3.X</h2>
<div style="border: 1px dotted #000;margin:10px 0;padding:10px;">
<input type="file" name="images[]" />
<input type="file" name="images[]"/>
<input type="file" name="images[]"/>
</div>

<br /><br />

<input type="submit" value="upload" name="upload" />

</form>

</body>
</HTML>

4. Tampilan image array setelah berhasil upload

hasil-upload-codeigniter

5. Coba buka file controller anda dan upload beberapa gambar, jika berhasil image akan terupload ke dalam folder uploads seperti gambar dibawah ini.

gambar-terupload-codeigniter

 

untuk mengetahui file terupload atau tidak saya hanya menggunakan var_export(). Tapi jika anda ingin menampilkannya di dalam file view silahkan saja anda sesuaikan karena disini saya hanya menjelaskan cara penerapan library MY_Upload.php pada Codeigniter versi 2.X dan 3.X.

Jika anda merasa kesulitan dengan penerapannya silahkan tuliskan kesulitan anda di kotak komentar. Selamat mencoba.(iwn)

8 comments

  1. Pak saya mau nanya saya mengunakan ci 3.1.2 saya lagi belajar membuat sebuah file image upload tapi kenapa selalu gagal upload filenya… Saat saya menggunakan display eror.tidak ada erornya tapi di.direktori uplods tidak ada file imagenya

  2. bisa jadi library uploadnya blm diload, coba pake konsep upload standar yang ada di dokumentasinya Codeigniter jika itu berhasil baru tinggal anda modifikasi sesuai keinginan

Leave a Reply

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