menu

Engine PHP - Upload image beauty code


Pada tutorial sebalumnya kita sudah membuat sebuah engine upload image dengan menggunakan bahasa native PHP tanpa menggunakan class dan function method. Tutorial kali ini kita akan membuat engine yang sama tapi dengan code yang lebih rapi dan terstruktur.

Oke kita mulai saja tutorialnya,
Pertama, buat folder projectnya terlebih dahulu beri nama misal class_method, kemudian buat file index.php pada folder project tersebut dan isikan code berikut,
<form action="save.php" method="post" enctype="multipart/form-data">
    <table width="100%">
        <tr>
            <td><input type="file" name="image"/></td>
        </tr>
        <tr>
            <td>Note: Supported image format: .jpeg, .jpg, .png</td>
        </tr>
    </table>
    <br>
    <input type="submit" value="Save"/>
</form>

Selanjutnya buat file baru dengan nama save.php dan isikan code berikut,
<?php
 Class SaveImage
 {
  public function extensions()
  {
   $extensions = array("jpeg","jpg","png");
   return $extensions;
  }

  public function save()
  {
   $file_name  = $_FILES['image']['name'];
   $file_size  = $_FILES['image']['size'];
   $file_tmp  = $_FILES['image']['tmp_name'];
   $file_ext = strtolower(end(explode('.',$_FILES['image']['name'])));
   $filename  = strtotime('now').'_'.$file_name;
   $error   = '';
   
   if(in_array($file_ext, $this->extensions())=== false){
    $error="extension not allowed, please choose a JPEG or PNG file.";
   }

   if($file_size > 1024000){
    if ($error) {
     $error=$error.' and File size must be excately 1 MB';
    } else {
     $error='File size must be excately 1 MB';
    }
   }

   if(empty($error)==true){
    move_uploaded_file($file_tmp,"images/".$filename);
    $response['status']  = 'Success';
    $response['results'] = $filename;
    return $response;
   }else{
    $response['status']  = 'Error';
    $response['results'] = $error;
    return $response;
   }
  }
 }

 if(isset($_FILES['image'])){
  $save_image = new SaveImage;
  $save = $save_image->save();
  foreach ($save as $key => $value) {
   echo $key.': '.$value.'<br>';
  }
  ?><br><a href="/test/test-upload_image">Back</a><?php
    }
?>

Terakhir buat folder tempat menyimpan image, beri nama folder dengan nama images, sehingga struktur file dan folder akan tampak seperti ini,


Dan tampilan urlnya saat kita akses akan tampak seperti ini,


Terlihat lebih rapi kan dibanding yang native? inilah seni dalam coding..

===DONE!===