Cara upload file dengan PHP | Dalam sebuah website atau aplikasi website biasanya kita perlu untuk menyertakan file, baik itu file gambar, foto, lagu, video, dokumen word, pdf dan lain sebagainya. Misalnya ketika ingin mengirim email dimana kita bisa menyertakan attachmen berupa file sebagai pelengkap email yang kita kirim, atau ketika posting di sosial media kita bisa memposting gambar atau video.

Untuk mengupload file ke server, kita bisa menggunakan PHP yang merupakan bahasa pemrograman server side.

upload file

Upload File (Image: zoho.com)

Pada tutorial kali Jurnalweb akan sedikit mengajarkan bagaimana caranya mengupload file server dengan menggunakan PHP, file yang diuplaod bisa berupa gambar, musik, video ataupun dokumen. Cara nya cukup mudah, scriptnya pun singkat, hanya perlu satu file saja dan tidak memerlukan database. Karena kita hanya akan belajar bagaimana cara upload file dengan PHP.

Buat Form

Pertama kita akan buat form dulu dengan menggunakan HTML, form ini tentu saja untuk mengambil daftar gambar yang ada di komputer, dan untuk menampilkan sebuah tombol untuk menguplaod.

Nama file: index.php

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Upload file dengan PHP</title>
</head>
<body>
<br />
<form action="" method="post" enctype="multipart/form-data">
	<input type="file" name="img" />
	<button type="submit" name="btn-upload">upload</button>
</form>
<p>
</body>
</html>

Keterangan:

  • method=”POST” : Untuk menentukan motode pengiriman, apakah POST atau GET
  • enctype=”multipart/form-data” : Untuk menentukan jenis dokumen yang akan di upload
  • type = “file”: untuk memastikan bahwa kita membuat sebuah field untuk browse semua gambar yang ada di komputer.

Script Upload File dengan PHP

Setelah form dibuat, tentu saja tinggal membuat script untuk upload file yang ada ke direktori yang diinginkan, dalam tutorial ini gambar akan di upload ke folder yang bernama uploads.

Script ini ditaruh diatas script HTML tadi, tepatnya diatas tag <!DOCTYPE html>.

<?php
if(isset($_POST['btn-upload']))
{
	$img = rand(1000,100000)."-".$_FILES['img']['name'];
	$img_loc = $_FILES['img']['tmp_name'];
	$folder="uploads/";
	if(move_uploaded_file($img_loc,$folder.$img))
	{
		echo "<script>alert('Upload Sukses!!!');</script>";
	}
	else
	{
		echo "<script>alert('Upload Gagal');</script>";
	} 
}
?>

Keterangan:

  • $folder : untuk menentukan nama folder tempat gambar akan ditampung
  • move_uploaded_files : adalah fungsi PHP untuk mengupload file ke lokasi tertentu.
  • $img : untuk membuat nama file baru yang lebih unik (gabungan angka acak dan nama file).
  • rand() : adalah fungsi PHP untuk mengacak angka, dengan begini maka setiap file yang Anda upload akan memiliki nama file yang unik nantinya.

Script Lengkap

Jadi jika digabungkan maka script lengkapnya adalah seperti ini, cukup satu file saja.

<?php
if(isset($_POST['btn-upload']))
{
	$img = rand(1000,100000)."-".$_FILES['img']['name'];
	$img_loc = $_FILES['img']['tmp_name'];
	$folder="uploads/";
	if(move_uploaded_file($img_loc,$folder.$img))
	{
		echo "<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%3Ealert('Upload%20Sukses!!!')%3B%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="<script>" title="<script>" />";
	}
	else
	{
		echo "<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%3Ealert('Upload%20Gagal')%3B%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="<script>" title="<script>" />";
	} 
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Upload file dengan PHP</title>
</head>
<body>
<br />
<form action="" method="post" enctype="multipart/form-data">
	<input type="file" name="img" />
	<button type="submit" name="btn-upload">upload</button>
</form>
<p>
</body>
</html>

Semoga membantu…