Pemrograman

Bahasa

Framework

Peralatan

Info

Memahami skrip PHP untuk upload file

– 07 September 2015
Teman Saya menanyakan, "Cara upload file dengan php, bagaimana?" Agak sulit bagi Saya menjelaskannya secara langsung. Oleh karena itu, saya membuat artikel ini untuk menjawabnya.
Upload file merupakan kegiatan pengiriman file dari client (pengunjung web) ke server. Kita akan mencoba memahami bagaiamana upload file di php bekerja. Baiklah, kita mulai dengan membuat form upload.
<!DOCTYPE html>
<html>
<head>
    <title>Upload File</title> 
</head>

<body>
    <form action="upload.php" method="post" enctype="multipart/form-data">
        Pilih file: <input type="file" name="berkas" />
        <input type="submit" name="upload" value="upload" />
    </form> 
</body> 
</html>
Perhatikanlah atribut-atribut yang digunakan pada elemen form, di sana terdapat atribut action, method, dan enctype. Atribut action berfungsi untuk membuka file (skrip) setelah tombol submit ditekan; Atribut method berfungsi untuk menentukan metode pengiriman yang akan digunakan; Dan atribut enctype berfungsi untuk menentukan enkripsi yang akan digunakan dalam pengiriman data.

Perhatikan juga atribut name yang ada pada elemen input. Atribut tersebut akan menentukan nama kuci pada vaeiabel yang menampung data form di PHP. Mungkin lebih jelasnya, kita buat dulu file upload.php dengan isi sebagai berikut:
<?php
echo "<pre>";
print_r($_FILES);
echo "</pre>";
?>
Kode PHP di atas hanya akan mencetak isi dari variabel $_FILES. Variabel $_FILES adalah variabel khusus untuk menampung data file yang akan diupload. Berikut ini adalah hasil yang didapatkan saat menguji coba kode tersebut:
Berdasarkan hasil di atas, kita dapat melakukan sesuatu dengan data itu. Misalkan, untuk melihat nama file yang di-upload, kita bisa mengakses variabel $_Files['berkas']['name']. Sekarang, mari kita menata semuanya agar menjadi lebih jelas. Ubahlah kode PHP tadi menjadi seperti ini:
<?php

$namaFile = $_FILES['berkas']['name'];
$namaSementara = $_FILES['berkas']['tmp_name'];
$dirUpload = "terupload/";


$terupload = move_uploaded_file($namaSementara, $dirUpload.$namaFile);

if ($terupload) {
    echo "Upload berhasil!<br/>";
    echo "Link: <a href='".$dirUpload.$namaFile."'>".$namaFile."</a>";
} else {
    echo "Upload Gagal!";
}

?>
Pada kode di atas, kita menambahkan beberapa variabel dan fungsi. Variabel $dirUpload untuk menentukan tempat penyimpanan file setelah berhasil di upload. Sementara, fungsi move_uploaded_file() untuk memindahkan file yang sudah terupload pada tmp_dir ke lokasi yang sudah ditentukan. Sebelum menguji coba kode ini, buatlah direktori bernama 'terupload' dan berikan hak akses seperti berikut ini:
Sekarang, saatnya menguji coba:
Cobalah periksa direktori 'terupload', apakah filenya berhasil di-upload ke sana atau tidak.

Kesimpulan dan saran

Jadi, setiap file yang di-upload ke server, datanya ditampung pada variabel $_FILES dan filenya sendiri disimpan sementara di direktori tmp_dir. Kemudian, fungsi move_uploaded_file() memindahkan file dari direktori tmp_dir ke direktori yang sudah ditentukan.

Jika ingin menyimpan data file yang terupload ke database, kita bisa memanfaatkan data yang ada di variabel $_FILES. Kemudian menyimpannya ke database.

---
Bagaimana menurutmu, mudah bukan?