Upload file php

alfa6661
- January 05, 2013
0 (0 votes)
Rate :
Cara mengupload file menggunakan PHP

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 :

  1. 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.
  2. multipart/form-data : data/karakter dikirim seperti aslinya. Ini digunakan untuk form dengan fasilitas upload.
  3. 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.

Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter

– Eric S. Raymond

Have a better explanation?

If you have comments about this post. Please write your comments below

No comments associated with this article