Membuat Form Upload File dengan PHP

Posted on
-->
Pasti kalian pernah meng-upload image di Facebook atau situs lainya. Kali ini kita pun akan merancang form bagi meng-upload poto atau data lainya. Seperti yang telah saya jelaskan di tutorial HTML 4, kita perlu menggunakan file field bagi memilih data yang akan kita upload nantinya.
Di file field terdapat seperti text field yang akan menunjukan path file kita, dan button bagi memilih file yang akan kita pilih. Lalu di properties form, ditambahkan enctype="multipart/form-data"  agar di proses upload berlangsung sukses.
Seketika saja kita mulai langkah-langkahnya.

1. Membangun Halaman Form Upload

Bikin halaman HTML dengan nama upload.html dengan kode berikut.
<html>
<body>
<form action ="upload_file.php" cara="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 dikala mengirimkan formulir. "Multipart / form-data" digunakan ketika menyusun memerlukan data biner, seperti isi file, bagi diupload
  • Jenis = "file" attribute dari tag <input> menentukan bahwa input mesti diproses selaku file. Selaku contoh, bila dilihat pada browser, akan ada sebuah browse-tombol di samping kolom input.

2. Membangun Skrip Upload File

Buatsebuah file dengan nama upload_file.php .  file ini  berisi kode bagi 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 Sahabat dapat meng-upload file dari komputer klien bagi server yang jauh (internet).

        Penjelasan Code diatas

  • $_FILES["file"]["name"] - nama file upload
  • $_FILES["file"]["type"] - jenis file upload
  • $_FILES["file"]["size"] - ukuran pada byte dari file upload
  • $_FILES["file"]["tmp_name"] - nama salinan sementara dari file yang tersimpan di server
  • $_FILES["file"]["error"] - kode kesalahan yang didapatkan dari file upload

Ini yakni cara yang benar-benar sederhana bagi meng-upload file. Bagi alasan keamanan, Sahabat mesti menambahkan pembatasan di apa pengguna diperbolehkan bagi meng-upload. Bagi itu kita perlu merancang skrip pembatas.

3. Membangun Skrip Pembatasan Upload File

Pada script ini kita menambahkan beberapa pembatasan bagi upload file. Pengguna hanya dapat meng-upload gif atau file jpeg dan ukuran file mesti 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 :
 Bagi IE bagi mengenali jenis file gambar jpg menggunakan pjpeg, bagi FireFox menggunakan jpeg.

4. Menyimpan File yang terupload

Contoh di atas yakni, merancang salinan sementara dari file yang diupload ke PHP temporary folder di server localhost. File disimpan sementara dikala proses skrip telah berakhir. Bagi 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 telah ada, bila tak, file akan di simpan ke folder yang dituju.

Catatan :
Contoh ini akan menyimpan file tersebut ke folder baru yaitu folder "upload"



Cara menyusun skrip atau kode :


- Sahabat mesti merancang 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 dimengerti para sobat sekalian. Selamat mencoba dan berkarya.

Leave a Reply

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