Codeigniter 4: Upload File atau Gambar

Codeigniter 4: Upload File atau Gambar

Upload File / Gambar dengan codeigniter 4

Ternyata cara untuk mengupload file /  gambar pada codeigniter 4 itu sangat mudah. Mau tau caranya untuk mengupload file / gambar dengan codeigniter 4? oke, sekarang kita mulai saja tutorial cara mengupload file / gambar dengan codeigniter 4.

Beginilah langkah untuk mengupload file / gambar pada codeigniter 4:
  1. Buat lah 2 file untuk mengupload yaitu file controler Uploadfile.php dan file view upload_view.php
  2. Kemudian buatlah form pada file upload_view.php sepeti yang saya contohkan di bawah
    <?php
    helper('form');//Load File Helper
    
    echo form_open_multipart('uploadfile/do_upload');
    
    ?>
    <table>
      <tr>
        <th colspan="2">Contoh File Upload Menggunakan Codeigniter 4</th>
      </tr>
      <tr>
        <td>File Upload</td>
        <td>
        	<?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">
        	<?php 
        		echo $msg; //Tampilkan Pesan setelah Upload
        	?>
        </td>
      </tr>  
    </table>
    <?php echo form_close(); ?>​

    Contoh di atas sayta menggunakan form helper untuk membuat form jika ingin menggunakan form biasa kamu bisa menggunakan source html di bawah ini

    <form action="<?php echo base_url('uploadfile/do_upload'); ?>" enctype="multipart&#x2F;form-data" method="post" accept-charset="utf-8">
    <table>
      <tr>
        <th colspan="2">Contoh File Upload Menggunakan Codeigniter 4</th>
      </tr>
      <tr>
        <td>File Upload</td>
        <td>
        	<input type="file" name="uploadedFile" value=""  />
    
        </td>
      </tr>
      <tr>
        <td colspan="2"><input type="submit" name="mysubmit" value="Upload File!"  />
    </td>
      </tr>
      <tr>
        <td colspan="2">
          <?php 
            echo $msg; 
          ?>
        </td>
      </tr>  
    </table>
    </form>
  3. Isi File controler Uploadfile.php dengan perintah berikut
    <?php 
    namespace App\Controllers;
    use CodeIgniter\Controller;
    
    
    class Uploadfile extends Controller
    {
        .........
    }​
  4. Buatlah function index() untuk menampilkan form yang ada pada file view upload_view.php dengan mengganti ....... dengan kode berikut
        public function index()
        {	
        	$data['msg']=str_replace('+', ' ', $this->request->getGet('msg'));
        	echo view('upload_view',$data);
        }​

    Form akan dapat di akes dengan alamat http://local.rumahcode.org/uploadfile seperti gambar di bawahTampilan Form Upload

  5. Tambahkan fungsi do_upload() + kode nya di bawah fungsi index(). Seperti skrip di bawah ini
        public function do_upload()
        {	
    
        	if ($this->request->getMethod() !== 'post') {
                return redirect()->to(base_url('uploadfile?msg=Method Salah'));
            }
    
            //$request = \Config\Services::request();
            $file = $this->request->getFile('uploadedFile');
            $name = $file->getName();// Mengetahui Nama File
            $originalName = $file->getClientName();// Mengetahui Nama Asli
            $tempfile = $file->getTempName();// Mengetahui Nama TMP File name
            $ext = $file->getClientExtension();// Mengetahui extensi File
            $type = $file->getClientMimeType();// Mengetahui Mime File
            $size_kb = $file->getSize('kb'); // Mengetahui Ukuran File dalam kb
            $size_mb = $file->getSize('mb');// Mengetahui Ukuran File dalam mb
    
            
            //$namabaru = $file->getRandomName();//define nama fiel yang baru secara acak
            
            if ($type == (('image/png') or ('image/jpeg'))) //cek mime file
            {	// File Tipe Sesuai
            	$image = \Config\Services::image('gd'); //Load Image Libray
            	$info = $image->withFile($file)->getFile()->getProperties(true); //Mendapatkan Files Propertis
            	$width = $info['width'];// Mengetahui Image Width
            	$height = $info['height'];// Mengetahui Image Height
    
            	helper('filesystem'); // Load Helper File System
            	$direktori = ROOTPATH.'upload'; //definisikan direktori upload
            	$namabaru = 'user_name.jpg'; //definisikan nama fiel yang baru
            	$map = directory_map($direktori, FALSE, TRUE); // List direktori
    
    	        /* Cek File apakah ada */
    	        foreach ($map as $key) {
    	        	if ($key == $namabaru){
    	        		delete_files($direktori,$namabaru); //Hapus terlebih dahulu jika file ada
    	        	}
    	        }
    	        //Metode Upload Pilih salah satu
            	//$path = $this->request->getFile('uploadedFile')->store($direktori, $namabaru);
            	//$file->move($direktori, $namabaru)
    	        if ($file->move($direktori, $namabaru)){
    	        	return redirect()->to(base_url('uploadfile?msg=Upload Berhasil'));
    	        }else{
    
    	        	return redirect()->to(base_url('uploadfile?msg=Upload Gagal'));
    	        }
            }else{
            	// File Tipe Tidak Sesuai
            	return redirect()->to(base_url('uploadfile?msg=Format File Salah'));
            }
        }​

    Sehingga menjadi begini ini file Upload.php.

    <?php 
    namespace App\Controllers;
    use CodeIgniter\Controller;
    
    
    class Uploadfile extends Controller
    {
        public function index()
        {	
        	$data['msg']=str_replace('+', ' ', $this->request->getGet('msg'));
        	echo view('upload_view',$data);
        }
        public function do_upload()
        {	
    
        	if ($this->request->getMethod() !== 'post') {
                return redirect()->to(base_url('uploadfile?msg=Method Salah'));
            }
    
            //$request = \Config\Services::request();
            $file = $this->request->getFile('uploadedFile');
            $name = $file->getName();// Mengetahui Nama File
            $originalName = $file->getClientName();// Mengetahui Nama Asli
            $tempfile = $file->getTempName();// Mengetahui Nama TMP File name
            $ext = $file->getClientExtension();// Mengetahui extensi File
            $type = $file->getClientMimeType();// Mengetahui Mime File
            $size_kb = $file->getSize('kb'); // Mengetahui Ukuran File dalam kb
            $size_mb = $file->getSize('mb');// Mengetahui Ukuran File dalam mb
    
            
            //$namabaru = $file->getRandomName();//define nama fiel yang baru secara acak
            
            if ($type == (('image/png') or ('image/jpeg'))) //cek mime file
            {	// File Tipe Sesuai
            	$image = \Config\Services::image('gd'); //Load Image Libray
            	$info = $image->withFile($file)->getFile()->getProperties(true); //Mendapatkan Files Propertis
            	$width = $info['width'];// Mengetahui Image Width
            	$height = $info['height'];// Mengetahui Image Height
    
            	helper('filesystem'); // Load Helper File System
            	$direktori = ROOTPATH.'upload'; //definisikan direktori upload
            	$namabaru = 'user_name.jpg'; //definisikan nama fiel yang baru
            	$map = directory_map($direktori, FALSE, TRUE); // List direktori
    
    	        /* Cek File apakah ada */
    	        foreach ($map as $key) {
    	        	if ($key == $namabaru){
    	        		delete_files($direktori,$namabaru); //Hapus terlebih dahulu jika file ada
    	        	}
    	        }
    	        //Metode Upload Pilih salah satu
            	//$path = $this->request->getFile('uploadedFile')->store($direktori, $namabaru);
            	//$file->move($direktori, $namabaru)
    	        if ($file->move($direktori, $namabaru)){
    	        	return redirect()->to(base_url('uploadfile?msg=Upload Berhasil'));
    	        }else{
    
    	        	return redirect()->to(base_url('uploadfile?msg=Upload Gagal'));
    	        }
            }else{
            	// File Tipe Tidak Sesuai
            	return redirect()->to(base_url('uploadfile?msg=Format File Salah'));
            }
        }
    }
    
  6. Fungsi upload di atas akan mengupload file / gambar ke direktori root codigniter / folder upload dengan nama file user_name.jpg sehingga dapat di akses dengan alamat berikut http://local.rumahcode.org/upload/user_name.jpg.
Artikel Menarik Lainnya
Codeigniter 4, Belajar Codeigniter 4, PHP

loading...