Membuat Script Upload Dengan PHP

PHPMempelajari PHP terkadang memang menyenangkan, karena kita akan selalu menemui tantangan-tantangan pada setiap Syntax. Salah satu hal terpenting ketika mempelajari PHP adalah mengenai fitur upload file dan berbagai macam mekanisme di dalamnya, dalam tutorial kali ini kita akan membahas secara detail tentang Membuat Script Upload Dengan PHP.

  1. Membuat halaman form untuk upload file
  2. Membuat script upload
  3. Menambahkan fitur validasi untuk mendekti upload file yang sama
  4. Menambahkan fitur filter untuk validasi upload jenis file tertentu

 

Membuat halaman form untuk upload file

Silahkan membuat form upload dengan nama index.html kemudian isi dengan script seperti dibawah ini :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="description" content="Membuat Script Upload Dengan PHP" />
<meta name="keywords" content="PHP tutorial, PHP" />
<meta name="author" content="Ichand Kusuma" />
<title>Halaman Upload</title>
</head>

<body>
<form action="upload.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<h3>Upload file :</h3>
<label>
<input type="file" name="fupload" />
</label>
<p>
<label>
<input type="submit" name="upload" value="Upload" />
</label>
</p>
<p><a href="files/">Browse files </a></p>
</form>
</body>
</html>

Hal yang perlu kita perhatikan, form untuk upload file ada pada baris :

Lupa menulis atau menambahkan parameter enctype akan menyebabkan file tidak akan dapat di upload, hal ini seringkali melanda bagi programmer yang baru belajar PHP, semoga adanya pengingatan ini dapat mengurangi kesalahan ketika coding.

 

Membuat script upload.php

Setelah berhasil membuat form upload, maka langkah selanjutnya adalah membuat file dengan nama upload.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="description" content="Membuat Script Upload Dengan PHP" /> 
<meta name="keywords" content="PHP tutorial, PHP" />
<meta name="author" content="Ichand Kusuma" />
<title>Halaman Upload</title>
</head>

<body>
<p>
  <?php

	//Membaca nama file
	$file_name = $_FILES['fupload']['name'];
	//Membaca ukuran file
	$size = $_FILES['fupload']['size'];
	//Membaca jenis file
	$file_type = $_FILES['fupload']['type'];

	//Source tempat upload file sementara
	$source = $_FILES['fupload']['tmp_name'];
	//Tempat upload file disimpan
	$direktori = "files/$file_name";

	//Mengecek apakah file yang di upload sudah ada atau belum
	if( file_exists ($direktori)) {
		echo "file <strong>$file_name</strong> sudah ada, upload dengan nama lain <br/> <a href=\"./\">kembali</a>";
		exit();
	} elseif ($file_type != "image/gif" && $file_type != "image/jpg" && $file_type != "image/jpeg" && $file_type != "image/png") {
		echo $file_type."<br/>";
		echo "file <strong>$file_name</strong> tidak di support, hanya untuk upload gambar (gif, jpg,jpef,png)";
	} else {
	//Memindahkan upload file dari direktori sementara ke tempat permanen
	//move_uploaded_file( $source, $target );// or die ("Couldn't copy");
	move_uploaded_file($source,$direktori);

	//Menampilkan keterangan file
	echo "<strong>Direktori sementara :</strong> ".$source."<br/>";
	echo "<strong>Folder :</strong> ".$direktori."<br/>";
	echo "<strong>Filename :</strong>".$file_name."<br/>";
	echo "<strong>Size : </strong>".$size." bytes <br/>";
	echo "<strong>File type : </strong>".$file_type."<br/>";
	echo "<strong>Filename :</strong>".$file_name."<br/>";
	}

?>

</p>
<p><a href="./">Upload lagi</a> | <a href="files/">Browse files </a></p>
<p>Code by : Mas iChaNDkusuma, <a href="http://www.kakiteng.com">kakiteng.com</a> </p>
</body>
</html>

Perhatikan pada baris kode berikut :

//Tempat upload file disimpan
$direktori = "files/$file_name";

Script diatas adalah variable untuk menyimpan file yang akan di upload, jika belum buat folder “files”, maka silahkan untuk membuat folder terlebih dahulu.

Dibawah adalah script untuk menampilkan pesan ketika upload berhasil.

//Menampilkan keterangan file
echo "<strong>Direktori sementara :</strong> ".$source."<br/>";
echo "<strong>Folder :</strong> ".$direktori."<br/>";
echo "<strong>Filename :</strong>".$file_name."<br/>";
echo "<strong>Size : </strong>".$size." bytes <br/>";
echo "<strong>File type : </strong>".$file_type."<br/>";
echo "<strong>Filename :</strong>".$file_name."<br/>";

Menambahkan fitur validasi untuk mendekti upload file yang sama

Perhatikan baris berikut :

//Mengecek apakah file yang di upload sudah ada atau belum
if( file_exists ($direktori)) {

Function file_exists() berfungsi untuk mengecek nama file pada direktori tempat penyimpanan upload file berada, jika ada maka fungsi if akan dijalankan dan memunculkan pesan.

Menambahkan fitur filter untuk validasi upload jenis file tertentu

Fitur ini berfungsi untuk memfilter jenis file yang di izinkan untuk di upload. Dalam script ini kita menggunakan
function if, fungsi if akan mendeteksi apakah jenis file yang di upload sesuai dengan yang diinginkan atau tidak.
Perhatikan pada baris script berikut :

else if ($file_type != "image/gif" && $file_type != "image/jpg" &&
$file_type != "image/jpeg" && $file_type != "image/png") {
echo $file_type."<br/>";
echo "file <strong>$file_name</strong> tidak di support,
hanya untuk upload gambar (gif, jpg,jpef,png)";
}

Cukup mudah bukan?

Untuk melihat demo script silahkan klik dibawah ini :

Demo Script Upload PHP

Untuk mendownload full script silahkan klik dibawah ini :

Download Script Upload PHP

Ayo sebarkan jika kamu suka dengan artikel Membuat Script Upload Dengan PHP dari Kakiteng c Kusuma, langsung aja Like, Share, Tweet atau Plus One sekarang juga...!!!

Comments

  1. By Sasito

    Reply

    • Reply

Leave a Reply

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

AlphaOmega Captcha Classica  –  Enter Security Code