Memahami Skrip PHP untuk Upload File
Bagaimana cara membuat fitur uplaoad file di PHP?
Pertanyaan ini cukup sering ditanyakan.
Karena itu, mari kita bahas bersama…
Upload file merupakan kegiatan pengiriman file dari client (pengunjung web) ke server.
Biar lebih gampang, mari kita bahas dengan coding
Kode PHP untuk Upload File
Silahkan buat dua file:
index.html
untuk membuat form uploadupload.php
untuk menerima dan memproses file yang di-upload
Isi file index.html
seperti ini:
<!DOCTYPE html>
<html>
<head>
<title>Upload File</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
Pilih file: <input type="file" name="berkas" />
<input type="submit" name="upload" value="upload" />
</form>
</body>
</html>
Fokus pada elemen <form>
. Perhatikan di sana ada beberapa hal yang harus
dipahami:
- atribut
action="upload.php"
artinya kita akan mengirim filenya keupload.php
; - atribut
enctype
atribut ini wajib disertakan untuk form upload; - atribut
name
akan menjadi nama indeks di dalam PHP.
Sekarang kita coba dulu isi file upload.php
seperti ini:
<?php
echo "<pre>";
print_r($_FILES);
echo "</pre>";
?>
…dan coba lakukan upload.
Maka hasilnya kan seperti ini:
Apa artinya ini?
Artinya: file yang kita upload akan ditampung dalam variabel $_FILES
. Variabel ini merupakan
sebuah array yang menampung data tentang file-nya.
Di sana ada beberapa indeks:
name
adalah nama file yang di-upload;type
adalah jenis file yang di-upload;tmp_name
adalah nama file yang berada di dalam direktori temporer server;error
menyatakan apakah ada error atau tidak;size
adalah ukuran file-nya.
Pertanyaan: Di mana lokasi file yang baru saja kita upload?
Lokasinya akan disimpan di direktori temporari atau direktori sementara di server.
Tugas kita berikutnya adalah memindahkan file ini ke dalam aplikasi kita.
Bagaimana caranya?
Ini akan kita bahas di langkah berikutnya.
Memindahkan File yang sudah di-upload
Setiap file yang kita upload ke server, filenya akan disimpan di dalam direktori temporer.
Untuk memindahkan file ini ke dalam direktori aplikasi kita,
maka kita membutuhkan sebuah fungsi bernama: move_uploaded_file()
.
Silahkan ubah kode upload.php
menjadi seperti ini:
<?php
// ambil data file
$namaFile = $_FILES['berkas']['name'];
$namaSementara = $_FILES['berkas']['tmp_name'];
// tentukan lokasi file akan dipindahkan
$dirUpload = "terupload/";
// pindahkan file
$terupload = move_uploaded_file($namaSementara, $dirUpload.$namaFile);
if ($terupload) {
echo "Upload berhasil!<br/>";
echo "Link: <a href='".$dirUpload.$namaFile."'>".$namaFile."</a>";
} else {
echo "Upload Gagal!";
}
?>
Variabel $terupload
akan bernilai true
apabila file berhasil dipindahkan
dan akan bernilai false
apabila gagal.
Sebelum mencoba, silahkan buat dulu direktori bernama terupload
di dalam direktori project-nya.
Sekarang mari kita coba upload file.
Jika berhasil, maka akan tampil seperti ini:
Untuk memastikan, coba periksa direktori terupload
:
Berhasil 🎉…
Apa Selanjutnya?
Ruang lingkup pembahasan kita cuma sampai memahami konsep upload file di PHP saja. Untuk langkah berikutnya, silahkan lakukan pengembangan sendiri.
Seperti:
- Menyeimpan data gambar di Database.
- Melakukan filter terhadap data yang di-upload.
- Melakukan pengolahan citra atau image processing dengan PHP
- dll.
Selamat belajar.