-->

Cara Mengupload Banyak File di Codeigniter

pict by pexels.com @pixabay

Untuk mengupload file seperti gambar PNG , JPEG atau PDF, Excel dan Word ke Web, sebenarnya Codeigniter sudah menyediakan library bawaan yang bernama library upload yang cukup mudah digunakan. silahkan baca dokumentasinya disini.

Namun pernah tidak?, kalian  mencoba mengupload multiple file atau mengupload lebih dari satu file di Codeigniter dan gagal?.

Hal ini pernah saya alami, dimana Codeigniter hanya akan mengupload file terakhir dari beberapa file yang di kirim dari form input. Atau hanya mengupload 1 file dari beberapa file tersebut. Meskipun saya saat itu telah menggunakan perulangan foreach namun tetap tidak berhasil.

Setelah saya baca-baca di forum Stackoverflow ternyata, secara default ketika upload file atau dokumen dilakukan, library upload codeigniter hanya akan membuat satu buah Object upload, dimana Object tersebut hanya dapat menampung satu file atau satu dokumen saja.

Oleh karena itu untuk melakukan upload multiple file atau dokumen, kita harus membuat Object upload custom sesuai dengan jumlah dokumen yang kita miliki.

Silahkan perhatikan tutorial dibawah ini :

Pada skript diatas kita membuat form untuk mengupload 2 buah file yang kita beri nama file1 dan file dua,jangan lupa memberi property method="POST" enctype="multipart/form-data" pada element formnya

Setelah itu buatlah sebuah controller bernama Dokumen
Lalu didalam controller tambahkan Skrip dibawah ini


Pada skrip diatas kita membuat sebuah controller dokumen yang terdiri dari 3 fungsi
Fungsi uploadfile() berfungsi untuk menerima dan memeriksa file yang dikirim dari form input
yang telah kita buat sebelumnya. Jika semua persyaratan didalam kondisi IF() terpenuhi

if(array_key_exists('file1',$_FILES) && $_FILES['file1']['size']>0){
$file1 = $this->upload_file1('file1');//upload $)FILES['file1'];
if ($file1['result']==false) {
echo "error : gagal di upload";
}else{
echo "file1 berhasil di upload";
}
}

maka fungsi upload_file1() akan di eksekusi (jika file1 dikirim dari input form).
Dan ketika persyaratan IF untuk file2 juga terpenuhi maka fungsi upload_file2() juga akan di eksekusi.

Isi dari fungsi upload_file1() dan upload_file2() sebenarnya hampir sama persis.
Perbedaanya paling utama terdapat pada

$this->load->library('upload', $config,'file1');//membuat object dengan nama file1
$this->file1->initialize($config);

dan

$this->load->library('upload', $config,'file2');//membuat object dengan nama file2
$this->file2->initialize($config);


Perhatikan pada baris kode tersebut kita membuat Objek custom bernama file1 dan file2
Dimana file1 digunakan untuk mengupload file dari form input bernama file1 '<input name="file1" placeholder="" type="file" value="" />'
dan file2 digunakan untuk mengupload file dari form input bernama file2 '<input name="file2" placeholder="" type="file" value="" />'

Sekian pembahasan dari saya, jika ada yang kurang jelas silahkan tanyakan di kolom komentar

Comments