Validasi Dimesi Gambar Dengan PHP

Pada artikel sebelumnya saya telah menjelaskan bagaimana melakukan proses validasi terhadap tipe file gambar yang kita upload. Sekarang saya mencoba menjelaskan bagaimana memvalidasi file gambar yang kita upload memiliki aturan dimensi ukuran yang telah ditentukan.

Jadi seperti ini kasusnya, system dari aplikasi kita hanya menerima file gambar yang bertipe jpeg dan memiliki ukuran dimensi minimal dengan lebar 100px dan tinggi 125px dan ukuran dimensi maksimal dengan lebar 200px dan tinggi 300. Apabila nanti user memasukan gambar yang memiliki dimensi kurang dari ukuran dimensi gambar minimal yang dikehendaki atau melebihi ukuran dimensi gambar maksimal yang dikehendaki maka akan proses upload dibatalkan.

Lalu bagaimana caranya, ya kita tinggal membandingkan ukuran file gambar yg hendak diupload dengan spesifikasi ukuran dimensi maksimal dan minimal. Langsung saja ya, copy folder pada artikel sebelumnya. Lalu beri nama folder itu dengan nama ‘validasi ukuran dimensi’. Lalu buat file baru dengan nama fungsi_cek_dimensi.php. Berikut listing codenya :

<?php
  function cekDimensiMax($lokasi_file){
       $lebar_max       = 200;
       $tinggi_max      = 300;
       $lokasi_gambar   = $lokasi_file;
       $hasil           = 0;
        
       $ukuran_asli = GetImageSize($lokasi_gambar);
        
       if ( $ukuran_asli[0] > $lebar_max and $ukuran_asli[1] > $tinggi_max ) {
         $hasil = 1;
       }
        
       return $hasil;
  }
   
  function cekDimensiMin($lokasi_file){
       $lebar_min       = 100;
       $tinggi_min      = 125;
       $lokasi_gambar   = $lokasi_file;
       $hasil           = 0;
        
       $ukuran_asli = GetImageSize($lokasi_gambar);
        
       if ( $ukuran_asli[0] < $lebar_min  and $ukuran_asli[1] < $tinggi_min ) {
          $hasil = 1;
       }
        
       return $hasil;
  }
?>

 

Pada code fungsi_cek_dimensi.php terdapat 2 fungsi yaitu function cekDimensiMax() untuk mengecek ukuran dimensi maksimal file gambar yang diupload dan function cekDimensiMin() untuk mengecek ukuran dimensi minmal file gambar yang diupload. Secara konsep, kedua file memiliki logika yang sama, namun perbedaannya hanya masalah maksimal dan minimal.

Lihat pada function cekDimensiMax(), $lokasi_file adalah path atau lokasi file gambar yang akan diupload sebelum disimpan pada folder image. Setelah kita mengetahui lokasi file gambar yang hendak diupload, kita ukur file gambar tersebut dengan fungsi gambar pada PHP,

GetImageSize(‘lokasi_gambar’)

Fungsi GetImageSize() disini menghasilkan array pertama yaitu lebar dari file gambar yang akan diupload dan array kedua adalah tinggi dari gambar yang akan diupload.

Lalu kini kita bandingkan lebar ukuran gambar sebenarnya dengan ukuran gambar maksimal atau ukuran gambar minimal yang telah kita setting.

if ( $ukuran_asli[0] > $lebar_max and $ukuran_asli[1] > $tinggi_max ) {
$hasil = 1;
}

Sekarang buku file proses_upload.php lalu tambahkan kode dibawah proses cekTypeImageUpload. Lengkapnya bisa dilihat pada listing kode dibawah.

<?php
   
  include("fungsi_koneksi.php");
  include("fungsi_validasi_tipe_image.php");
  include("fungsi_cek_dimensi.php");
   
   
   
  $lokasi_file = $_FILES['adiputra']['tmp_name'];
  $tipe_file   = $_FILES['adiputra']['type'];
  $nama_file   = $_FILES['adiputra']['name'];
  $direktori   = "image/$nama_file";
   
   
  $hasil = cekTypeImageUpload($tipe_file); 
   
  if ($hasil == 1){
    echo "<script language='javascript'>alert('Maaf hanya menerima file gambar yang bertipe jpg')</script>";
    echo "<script language='javascript'>window.location = '../teknik_validasi_file_upload/'</script>";
    exit();
  }
   
  $cekMax = cekDimensiMax($lokasi_file);
   
  if ($cekMax == 1){
    echo "<script language='javascript'>alert('Maaf ukuran dimensi gambar maksimal berukuran 200x300')</script>";
    echo "<script language='javascript'>window.location = '../validasi ukuran dimensi/'</script>";
    exit();
  }
   
  $cekMin = cekDimensiMin($lokasi_file);
   
  if ($cekMin == 1){
    echo "<script language='javascript'>alert('Maaf ukuran dimensi gambar minimal berukuran 100x125')</script>";
    echo "<script language='javascript'>window.location = '../validasi ukuran dimensi/'</script>";
    exit();
  }
   
  if (!empty($lokasi_file)) {
    move_uploaded_file($lokasi_file,$direktori); 
   
     
    $koneksi = koneksi_db();
    $sql = "insert into dtimage values (null,'$nama_file')";
    $aksi = mysql_query($sql,$koneksi);
     
     
     
    if (!$aksi) {
    echo "maaf gagal memasukan gambar";
    }else{
        echo "gambar berhasil di upload<br>";
        echo "untuk melihatnya silakan klik <a href='view_image.php'>Link ini</a>";
    }
     
     
  }else{
    echo "terjadi kesalahan";  
  }
   
   
   
?>

 

Lihat pada kode,

$cekMax = cekDimensiMax($lokasi_file);

Kita ketahui bahwa function cekDimensiMin dan function cekDimensiMax akan memiliki keluaran value 1 atau 0. 1 apabila ukuran dimensi yang melebihi dari ukuran maksimal atau kurang dari ukuran minimal. Dan memiliki nilai 0 apabila dimensi gambar yang akan diupload tidak melebihi ukuran maksimal dimensi dan tidak kurang dari ukuran minimal dimensi yang telah kita setting.

download semua file disini

Sampai disini, semoga bermanfaat ya. Lain waktu saya share lagi.

Leave a Reply

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

%d bloggers like this: