Jumat, 20 Juli 2012

Membuat Form Upload File dengan PHP

Pasti kalian pernah meng-upload foto di Facebook atau situs lainya. Kali ini kita juga akan membuat form untuk meng-upload poto atau data lainya. Seperti yang telah saya jelaskan pada tutorial HTML 4, kita perlu menggunakan file field untuk memilih data yang akan kita upload nantinya.
Pada file field terdapat seperti text field yang akan menunjukan path file kita, dan button untuk memilih file yang akan kita pilih. Lalu pada properties form, ditambahkan enctype="multipart/form-data"  agar pada proses upload berlangsung lancar.
Langsung saja kita mulai langkah-langkahnya.

1. Membuat Halaman Form Upload

Buat halaman HTML dengan nama upload.html dengan kode berikut.
<html>
<body>
<form action ="upload_file.php" metode="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>

penjelasan file upload.html

  • Atribut enctype dari tag <form> yang menentukan jenis konten yang akan digunakan saat mengirimkan formulir. "Multipart / form-data" digunakan ketika membentuk memerlukan data biner, seperti isi file, untuk diupload
  • Jenis = "file" attribute dari tag <input> menentukan bahwa input harus diproses sebagai file. Sebagai contoh, bila dilihat dalam browser, akan ada sebuah browse-tombol di samping kolom input.

2. Membuat Skrip Upload File

Buatsebuah file dengan nama upload_file.php .  file ini  berisi kode untuk meng-upload file kedalam direktori yang kita tuju. Copy dan simpan skrip di bawah dengan nama 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 "Stored in: ".$_FILES["file"]["tmp_name"];
}
?>
Dengan menggunakan global PHP $_FILES array Anda dapat meng-upload file dari komputer klien untuk server yang jauh (internet).

Legend - Style 1

  • $_FILES["file"]["name"] - nama file upload
  • $_FILES["file"]["type"] - jenis file upload
  • $_FILES["file"]["size"] - ukuran dalam byte dari file upload
  • $_FILES["file"]["tmp_name"] - nama salinan sementara dari file yang tersimpan di server
  • $_FILES["file"]["error"] - kode kesalahan yang dihasilkan dari file upload
Ini adalah cara yang sangat sederhana untuk meng-upload file. Untuk alasan keamanan, Anda harus menambahkan pembatasan pada apa pengguna diperbolehkan untuk meng-upload. Untuk itu kita perlu membuat skrip pembatas.

3. Membuat Skrip Pembatasan Upload File

Dalam script ini kita menambahkan beberapa pembatasan untuk upload file. Pengguna hanya dapat meng-upload gif atau file jpeg dan ukuran file harus berada di bawah 20 kb:
<?php
if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000))
{
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 "Stored in: " . $_FILES["file"]["tmp_name"]; }
}
else
{
echo "Invalid file";
}
?>
Catatan : Untuk IE untuk mengenali jenis file gambar jpg menggunakan pjpeg, untuk FireFox menggunakan jpeg.

4. Menyimpan File yang terupload

Contoh di atas adalah, membuat salinan sementara dari file yang diupload ke PHP temporary folder pada server localhost. File disimpan sementara saat proses skrip telah berakhir. Untuk menyimpan upload file kita perlu penyalinan path ke lokasi yang berbeda :
if ((($_FILES["file"]["type"]=="image/gif") || ($_FILES["file"]["type"]=="image/jpeg") || ($_FILES["file"]["type"]=="image/pjpeg")) && ($_FILES["file"]["size"]<20000)) 
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code:".$_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 "Temp file: ".$_FILES["file"]["tmp_name"]."<br />";

if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"]."already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);>echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
Skrip di atas memeriksa apakah file sudah ada, jika tidak, file akan di simpan ke folder yang dituju.
Catatan :
Contoh ini akan menyimpan file tersebut ke folder baru yaitu folder "upload"
Cara mnyusun skrip atau kode :
- Anda harus membuat file atau halaman form dan skrip upload file (upload_file.php)
- Kode dari file upload_file.php dapat diganti dengan langkah no 2, 3 dan 4
Semoga apa yang telah saya jelaskan dapat dipahami para sobat sekalian. Selamat mencoba dan berkarya.
◄ Newer Post Older Post ►