Tutorial PHP : Menyederhanakan Fungsi Upload Gambar kedalam Class


Menyederhanakan fungsi upload gambar php


Penyederhanaan sebuah kode dalam PHP bisa dilakukan dengan cara menyimpan nilai kedalam sebuah class atau fungsi sehingga saat akan digunakan kembali kita hanya cukup mengetikan perintah pendek. Misalnya, setiap kali kita ingin mendapatkan parameter data dari sebuah gambar yang diupload seperti nama, tmp name, size atau ektensi dari gambar/foto kita perlu mengetik perintah $_FILES sampai beberapa kali seperti $_FILES[parameter_name][name] $_FILES[parameter_name][tmp_name] $_FILES[parameter_name][size] dst.

Dan bayangkan saja nantinya pasti akan banyak baris kode yang sebenarnya secara fungsi sama namun ditulis berulang - ulang, untuk itu Anda bisa menyederhanakan sebuah perintah tertentu dalam contoh kasus ini adalah Menyederhanakan Fungsi Upload Gambar kedalam Class. 

# 1 Menyimpan Fungsi Upload Didalam Class
Buat sebuah class dengan beberapa property function yang kita buat khusus untuk proses penanganan upload gambar serta validasinya, seperti berikut :


<?php
/**
------------------------------------
Menyedernakan fungsi upload kedalam sebuah class
dengan tujuan supaya mudah untuk digunakan dan membuat kode
jadi terlihat lebih sederhana

**/
class upload
{
	public function getImage($data, $path)
	{
		# Mendapatkan info name gambar, tmp name dan size gambar
		$this->file_name=$_FILES[$data]['name'];
		$this->file_dir=$_FILES[$data]['tmp_name'];
		$this->file_size=$_FILES[$data]['size'];
		# Mendapatkan informasi extensi gambar
		$this->file_extension=strtolower(pathinfo($this->file_name,PATHINFO_EXTENSION));
		# White list gambar yang boleh di upload
		$this->file_valid=array('jpg','jpeg','png');
		# Menentukan Direktori untuk menyimpan gambar
		$this->file_destinasi='../'.$path.'/';
		# Menyimpan gambar kedalam nama baru
		$this->file_foto=rand(100,100000).".".$this->file_extension;

	}
	public function getImage_validateSize()
	{
		if($this->file_size>300000){
				return true;
			}else{
				return false;
			}
	}
	public function getImage_validateExtension()
	{
		# in array membandingkan ektensi yang didapatkan dengan ektensi valid yang diperbolehkan
		if(in_array($this->file_extension, $this->file_valid)){
			return true;
		}else{
			return false;
		}
	}
	public function getUpload($item_name, $file_foto, $file_destinasi)
	{
		# item name = nama foto/tmp name, file destinasi=direktori, file foto = nama baru foto
		if(move_uploaded_file($item_name, $file_destinasi.$file_foto)):
			return true;
		else:
			return false;
		endif;
	}
}
?>


# 2 Cara memanggil fungsi
Anda bisa memanggil fungsi yang telah tersedia dengan penulisan atau contoh seperti berikut :



<?php
require_once 'class.image.php';

$obj = new upload;

if($_SERVER['REQUEST_METHOD']=='POST'){


	$obj->getImage('gambar','image');

	if($obj->getImage_validateExtension()):
		if($obj->getImage_validateSize()):
			echo "Gambar tidak boleh lebih dari 300 KB";
		else:
			$file=$obj->file_dir;
		endif;
	else:
		echo "Masukan hanya format JPEG, JPG, dan atau PNG";
	endif;
	
	if($obj->getUpload($file, $obj->file_foto, $obj->file_destinasi)):
		echo "Berhasil Upload";
	else:
		echo "Gagal upload";
	endif;

}

?>
<!DOCTYPE html>
<html>
<head>
	<title>Upload File</title>
</head>
<body>
	<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
	
	<label>Pilih Foto</label>
	<input type="file" name="gambar">
	<input type="submit" name="upload" value="upload">	


	</form>

</body>
</html>


Dan bisa Anda bandingkan sendiri bahwa kode lebih terlihat sederhana dan jadi tidak terlalu panjang, serta tentu saja lebih mudah untuk digunakan. Misalnya saja, untuk mendapatkan parameter gambar/foto yang diupload disana Anda hanya cukup menuliskan perintah $obj->getImage('gambar','image');

Dan setiap kali Anda membutuhkan fungsi untuk mendapatkan parameter gambar Anda hanya perlu menulis $obj->getImage('gambar','image'). Lalu kemudian untuk melakuakn validasi Anda bisa menggunakan fungsi getImage_validateSize untuk validasi ukuran, getImage_validateExtension untuk validasi ektensi gambar dan getUpload untuk melakukan proses upload gambar.

Baca juga ::




0 Response to "Tutorial PHP : Menyederhanakan Fungsi Upload Gambar kedalam Class"

Post a Comment

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin