Codeigniter 4: Multiple File Upload

Codeigniter 4: Multiple File Upload

Kembali lagi ke pembahasan Codeigniter, pada tutorial codeigniter 4 kali ini saya akan membuat tutorial tentang upload file. Bukan kah sudah pernah ada tutorial upload file dengan menggunakan codeigniter? Memang saya sudah pernah membuat tutorial tentang upload file ini (Codeigniter 4: Upload File atau Gambar) tapi kali ini saya akan membuat tutorial tentang Multiple File Upload dengan codeigniter 4.

Sebenar nya untuk mengupload multiple file upload atau mengupload file lebih dari satu file dalam satu kali proses itu tidak jauh berbeda dengan mengupload satu file saja. Jadi dimanakah perbedaan nya? Perbedaan nya terletak pada pengiriman array pada form dan pembacaan array.

Letak perbedaan Upload biasa dengan multipl upload

Form Upload

Perbedaan pertama itu dapat kita lihat dari sisi form

<?php echo form_input('uploadedFile', '', '', 'file'); ?>

Source code di atas adalah source code form helper untuk singel file upload. Sekarang coba perhatikan source code di bawah ini

<?php echo form_input('uploadedFile[]', '', '', 'file'); ?>
<?php echo form_input('uploadedFile[]', '', '', 'file'); ?>
<?php echo form_input('uploadedFile[]', '', '', 'file'); ?>

nah sekarang sudah terlihat jelas kan dimana perbedaan nya? perbedaan nya terletak pada jumlah form_input dan nama dari form_input itu sendiri.

Proses Upload

Perbedaan selanjut nya terletak pembacaan varibel  file upload yang dikirim oleh form.  Coba perhatikan source code di bawah ini

$imagefile = $this->request->getFile();
$imagefile = $this->request->getFiles();

pada source code baris pertama di atas itu adalah untuk memproses hanya satu buah file, sedangkan untuk baris ke dua itu adalah untuk memproses lebih dari satu file yang akan di upload. Jadi nilai dari variabel $imagefile pada baris kedua merupakan sebuah array.

Biar gak gak bingung saya akan memberikan source code untuk multiple file upload.

Source Multiple File Upload

Untuk source code Multiple file upload ini saya akan melakukan nya di controller Home dan view form.

Source Code Controller Home

<?php 
namespace App\Controllers;
use CodeIgniter\Controller;


class Home extends Controller
{
    public function index()
    {	
    	echo view('form',$data);
    }
    public function dos()
    {	
		helper('filesystem');
		$direktori = ROOTPATH.'upload';
		
		if($imagefile = $this->request->getFiles())
		{
		   foreach($imagefile['uploadedFile'] as $img)
		   {
			  if ($img->isValid() && ! $img->hasMoved())
			  {
				   $namabaru = $img->getRandomName();
				   
				   $type = $img->getClientMimeType();
				   if ($type == (('image/png') or ('image/jpeg')))
				   {	
						if ($img->move($direktori, $namabaru))
							{
								echo $namabaru.'<br>';
								echo '<img src="'. base_url('upload/'.$namabaru).'"><hr>';
							}
				   }
			  }
		   }
		}
    }
}

Source Code View Form.php

<?php
helper('form');

echo form_open_multipart('home/dos');

?>
<table>
  <tr>
    <th colspan="2">Contoh Multiple File Upload Menggunakan Codeigniter 4</th>
  </tr>
  <tr>
    <td>File Upload</td>
    <td>
    	<?php echo form_input('uploadedFile[]', '', '', 'file'); ?>
		<?php echo form_input('uploadedFile[]', '', '', 'file'); ?>
		<?php echo form_input('uploadedFile[]', '', '', 'file'); ?>

    </td>
  </tr>
  <tr>
    <td colspan="2"><?php echo form_submit('mysubmit', 'Upload File!'); ?></td>
  </tr>
  <tr>
    <td colspan="2">

    </td>
  </tr>  
</table>
<?php echo form_close(); ?>

Sekaarang kamu tinggal mempraktekan saja dengan menggunakan contoh source code di atas.

Artikel Menarik Lainnya
Codeigniter, Codeigniter 4, Belajar Codeigniter 4, PHP, Source Code, Tutorial Codeigniter 4

loading...