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).

        Penjelasan Code diatas

  • $_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 menyusun 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.

16 Komentar

  1. good education bro

    BalasHapus
  2. siip mas broo
    nitip blog gue dong ,visite yaa :)
    http://ardineducated99.blogspot.com/

    BalasHapus
  3. salam kenal boz, saya tertarik sekali dengan konten anda tentang cara membuat form upload foto php but saya masih bingung cara menerapkannya? bisa bantu saya boz....thanks....

    BalasHapus
  4. @arek community:
    anda mengalami kesulitan dalam menerapkan program yang mana ??

    tolong di jelaskan dan saya akan membantu anda

    BalasHapus
  5. saya senang sekali gan mantap infonya
    sayng sekali ane awam banget kepengen bisa kayak agan

    BalasHapus
  6. @alaska pulsa:
    cara belajar program website yang benar adalah ,,
    1. Pelajari dulu apaitu algoritma pemrograman
    2. jika sudah sedikit mengerti,pelajari HTML
    3.jika sudah,pelajari CSS
    4.lalu pelajari JavaSript
    5.lalu pelajari PHP MYSQL,
    6. Jika sudah Pelajari lagi apa itu PHP OOP atau Framwork PHP ,,
    7. Jika sudah mengerti, pelajari Ajax dan Jquery ,,

    Jika semua itu sudah anda pelajari, anda akan dicari oleh lowongan pekerjaan,,tapi bukan anda yang mencari ,,

    semoga membantu

    BalasHapus
  7. kalo ingin membuat nama file yg diupload itu berdasarkan angka,,
    contoh : upload file gambar.jpg , selanjutnya nama file akan berganti menjadi 1.jpg di database ..

    terimakasih.

    BalasHapus
  8. untuk blogspot bisa diterapkan ga gan?
    www.profitgoonline.com

    BalasHapus
  9. Gan Kalo Kaya Gitu Perlu Database Ga ?

    BalasHapus
  10. @tilay hacker: Untuk contoh diatas, gak perlu pake database gan

    BalasHapus
  11. Sepertinya mucah, namun saya gagal jika ingin mengupload file video yang kapasitasnya lebih dari 1 gb, saya upload ke localhost saja sih. ada yang bisa kasih contoh?

    Desain Ruang Bermain Anak

    BalasHapus
  12. thanks gan infonya sangat membantu ^_^

    BalasHapus
  13. Cara ubah upload file nya jadi html gimana? Say invalid file

    BalasHapus
  14. Gan buatin yg versi upload nya hanya extensi html

    BalasHapus
Lebih baru Lebih lama