Artikel ini akan menjelaskan bagaimana mengupload file dari form ke server menggunakan PHP. PHP membuat semuanya menjadi lebih mudah dalam menangani upload file. Untuk membuat form upload pastikan kita menyertakan atribut enctype pada form
Perlu diketahui bahwa ada 3 tipe pengkodean data (enctype) yang dapat dilakukan oleh sebuah form yaitu :
- application/x-www-form-urlencoded : semua karakter akan diubah oleh browser menjadi kode ASCII dan semua tanda spasi diubah menjadi simbol “+” sebelum dikirim ke server.
- multipart/form-data : data/karakter dikirim seperti aslinya. Ini digunakan untuk form dengan fasilitas upload.
- text/plain : tanda spasi diubah menjadi simbol “+”, tapi karakter lain dikirimkan seperti aslinya.
enctype merupakan salah satu attribute dari tag yang merupakan spesifikasi dari tipe komponen apa yang digunakan. Dan untuk melakukan upload file kita menggunakan tipe pegkodean data multipart/form-data. multipart/form-data menandakan bahwa data yang dikirim berupa data binary, seperti komponen file (bisa file audio, video, teks, gambar, dll)
Contoh
<html>
<body>
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
semua file yang dikirimkan melalui form akan disimpan dalam variabel array $_FILES[‘file’], file merupakan nilai dari attribut name pada input, contoh berikut bagaimana mendapatkan data data yang di kirim dari form
Contoh 1 : upload_file.php
<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload : " . $_FILES["file"]["name"] . "<br />";
echo "Type : " . $_FILES["file"]["type"] . "<br />";
echo "Size : " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "temporary : " . $_FILES["file"]["tmp_name"];
}
?>
Output
Upload : details-bottom.jpg
Type : image/jpeg
Size : 54.3115234375 Kb
temporary : C:\xampp\tmp\phpF03C.tmp
atau lebih singkatnya, kita dapat melakukan looping terhadap variabel array $_FILES[‘file’],
contoh :
<?php
foreach($_FILES['file'] as $key => $value) {
echo "{$key} : {$value} <br />";
}
?>
Output
name : details-bottom.jpg
type : image/jpeg
tmp_name : C:\xampp\tmp\phpF03D.tmp
error : 0
size : 55615
Validasi Tipe file yang di upload
Untuk beberapa kasus kita memerlukan validasi terhadap tipe file apa saja yang bisa di upload, misalnya input hanya dapat menampung file dengan tipe image, selain itu tidak di bolehkan.
Contoh
Untuk melakukan validasi ini, kita perlu mengetahui jenis jenis tipe ekstensi pada image, yang sering digunakan misalnya gif, jpg, dan png, tipe tipe ekstensi ini dapat kita bandingkan dengan variabel $_FILES[‘type’]. Variabel $_FILES[‘type’] ini menyimpan informasi tipe file yang di kirim, contoh “image/gif”, “image/jpeg”, dll.
Contoh 2 : upload_file.php
<?php
$tipe = array("image/gif", "image/jpeg", "image/jpg", "image/png");
if(in_array($_FILES['file']['type'], $tipe)) {
echo "tipe file diterima";
}
else {
echo "tipe file salah";
}
?>
Menyimpan file upload
Setelah memahami bagaimana memproses file yang di upload, contoh ini bagaimana menyimpan file yang di upload pada form tadi.
Contoh 3 : upload_file.php
<?php
$tipe = array("image/gif", "image/jpeg", "image/jpg", "image/png");
if(in_array($_FILES['file']['type'], $tipe))
{
if ($_FILES["file"]["error"] > 0)
{
echo $_FILES["file"]["error"] . "<br />";
}
else
{
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " sudah ada. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
echo "<h2>Upload sukses</h2>di upload di : " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "File tidak didukung";
}
?>
Contoh 3. upload_file.php, akan memeriksa tipe file yang boleh di upload (pada contoh gif, jpeg, png), kemudian memeriksa adanya error pada saat pengiriman. jika di temukan tidak ada error, di lanjutkan memeriksa pada folder tujuan, apakah file tersebut sudah ada atau belum, jika belum proses upload akan dilakukan
Move_uploaded_file merupakan fungsi php untuk mengirimkan / upload file ke tujuan yang ditentukan, move_uploaded_file(parameter1,parameter2), mempunyai dua parameter, yang pertama nama temporari file, dan yang kedua adalah alamat file tujuan. Pada contoh diatas, file yang diupload akan disimpan di dalam folder upload dengan nama yang sama dengan file aslinya.
No Comments
Leave a comment Cancel