Pada tutorial kali ini kita akan membahas bagaimana cara mengupload file gambar ataupun file lain dengan menggunakan PHP.  Proses mengupload ini tidak sulit namun tidak mudah juga apalagi untuk pemula.

Pada tutorial ini akan dijabarkan sedikit langkah kunci untuk membantu pemula untuk memahami bagaimana prosesnya.

upload file php

Upload File (Foto:qnimate.com)

Untuk lebih memudahkan ada baiknya Anda terlebih dahulu memahai tentang variabel global dan array PHP. Dua bagian tersebut merupakan elamen penting untuk sistem tersebut.

Berikut cara kerjanya

Sering kali di sebuah website kita dihadapkan pada proses yang mengharuskan kita memasukan gambar atau file lain, seperti contohnya merubah foto profile facebook, atau mengupload file pada saat mengirim emai.

Buat Tampilan HTML

<!DOCTYPE html>
<html>
<head>
    <title>Files upload</title>

    	<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

<div class="container">

<div class="form">

            <form name="uploader" action="process.php" method="POST" enctype="multipart/form-data">

                <input type="file" name="file">

                <button type="submit">Upload</button>
            </form>

</div>

</div>

</body>
</html>

Dengan script tersebut akan terbentuk sebuah form yang berisi field untuk browse file yang ada di komputer, dan sebuah tombol untuk submit. Bagian yang penting disitu adalah <form> dan enctype yang berisikan multipart/form-data yang berfungsi untuk mengupload file-file dengan PHP nantinya.

Untuk mencoba apakah bisa berjalan, coba buat sebuah file php dengan nama process.php, lalu isikan script untuk pengecekan sebagai berikut

<?php

var_dump($_FILES);

Setelah file disave, maka coba jalankan di localhost/upload-file/index.html, lalu coba browse sebuah gambar, ketika anda menekan tombol upload, maka akan muncul array seperti berikut, yang menjelaskan data-data tentang file yang di upload.

array(1) { ["file"]=> array(5) { ["name"]=> string(11) "supersu.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(36) "/Applications/MAMP/tmp/php/phptYRaEm" ["error"]=> int(0) ["size"]=> int(8064) } }

Bisa dilihat bahwa hasil array tersebut menginformasikan nama file dan lokasi file, dan lain sebagainya.

Sekarang mari kita kembali ke process.php, kita akan coba mengupload file. Disini akan coba memindahkan file dari komputer pengguna ke folder download yang berlokasi di dalam folder proyeknya yang berada di folder: upload-php/upload

Buah Script Untuk Proses Upload

Pertama hapus script fungsi var_dump() yang ada di process.php, lalu ganti dengan script berikut.

<?php

$file_max_weight = 20000; //limit the maximum size of file allowed (20Mb)

$ok_ext = array('jpg','png','gif','jpeg'); // allow only these types of files

$destination = 'uploads/'; // where our files will be stored



// PHP sets a global variable $_FILES['file'] which containes all information on the file
// The $_FILES['file'] is also an array, so to have the file name we're supposed to write $_FILES['file']['name']
// To shorten that I added the following line. With that I could just do $file['name']
$file = $_FILES['file'];


$filename = explode(".", $file["name"]); 


$file_name = $file['name']; // file original name

$file_name_no_ext = isset($filename[0]) ? $filename[0] : null; // File name without the extension

$file_extension = $filename[count($filename)-1];

$file_weight = $file['size'];

$file_type = $file['type'];



// If there is no error
if( $file['error'] == 0 )
{
    // check if the extension is accepted
    if( in_array($file_extension, $ok_ext)):

        // check if the size is not beyond expected size
        if( $file_weight <= $file_max_weight ):


                // rename the file
                $fileNewName = md5( $file_name_no_ext[0].microtime() ).'.'.$file_extension ;


                // and move it to the destination folder
                if( move_uploaded_file($file['tmp_name'], $destination.$fileNewName) ):

                    echo" File uploaded !";

                else:

                    echo "can't upload file.";

                endif;


        else:

           echo "File too heavy.";

        endif;


    else:

        echo "File type is not supported.";

    endif;
}

Jika sudah, simpan file process.php, dan jalankan kembali programnya. Jika file tidak bisa di upload maka coba buat folder uploads pada folder proyek anda, buat dilokasi yang sama dengan file index.html

Download Code

Semoga berguna untuk Anda yang sedang belajar pemograman PHP, sampai jumpa di tutorial berikutnya.