Cara Upload File di PHP

Bagaimana cara membuat fitur uplaoad file di PHP?

Pertanyaan ini cukup sering ditanyakan.

Karena itu, mari kita bahas bersama…

Upload file merupakan kegiatan pengiriman file dari client (pengunjung web) ke server.

Upload file ke aplikasi web

Biar lebih gampang, mari kita bahas dengan coding

Kode PHP untuk Upload File

Silahkan buat dua file:

  1. index.html untuk membuat form upload
  2. upload.php untuk menerima dan memproses file yang di-upload

Isi file index.html seperti ini:

<!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>

Fokus pada elemen <form>. Perhatikan di sana ada beberapa hal yang harus dipahami:

  • atribut action="upload.php" artinya kita akan mengirim filenya ke upload.php;
  • atribut enctype atribut ini wajib disertakan untuk form upload;
  • atribut name akan menjadi nama indeks di dalam PHP.

Sekarang kita coba dulu isi file upload.php seperti ini:

<?php
echo "<pre>";
print_r($_FILES);
echo "</pre>";
?>

…dan coba lakukan upload.

Maka hasilnya kan seperti ini:

Upload file di PHP

Apa artinya ini?

Artinya: file yang kita upload akan ditampung dalam variabel $_FILES. Variabel ini merupakan sebuah array yang menampung data tentang file-nya.

Di sana ada beberapa indeks:

  • name adalah nama file yang di-upload;
  • type adalah jenis file yang di-upload;
  • tmp_name adalah nama file yang berada di dalam direktori temporer server;
  • error menyatakan apakah ada error atau tidak;
  • size adalah ukuran file-nya.

Pertanyaan: Di mana lokasi file yang baru saja kita upload?

Lokasinya akan disimpan di direktori temporari atau direktori sementara di server.

Tugas kita berikutnya adalah memindahkan file ini ke dalam aplikasi kita.

Bagaimana caranya?

Ini akan kita bahas di langkah berikutnya.

Memindahkan File yang sudah di-upload

Setiap file yang kita upload ke server, filenya akan disimpan di dalam direktori temporer.

Untuk memindahkan file ini ke dalam direktori aplikasi kita, maka kita membutuhkan sebuah fungsi bernama: move_uploaded_file().

Silahkan ubah kode upload.php menjadi seperti ini:

<?php

// ambil data file
$namaFile = $_FILES['berkas']['name'];
$namaSementara = $_FILES['berkas']['tmp_name'];

// tentukan lokasi file akan dipindahkan
$dirUpload = "terupload/";

// pindahkan file
$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!";
}

?>

Variabel $terupload akan bernilai true apabila file berhasil dipindahkan dan akan bernilai false apabila gagal.

Sebelum mencoba, silahkan buat dulu direktori bernama terupload di dalam direktori project-nya.

Direktori untuk upload file

Sekarang mari kita coba upload file.

Jika berhasil, maka akan tampil seperti ini:

Upload File berhasil

Untuk memastikan, coba periksa direktori terupload:

Upload Gambar Berhasil

Berhasil 🎉…

Apa Selanjutnya?

Ruang lingkup pembahasan kita cuma sampai memahami konsep upload file di PHP saja. Untuk langkah berikutnya, silahkan lakukan pengembangan sendiri.

Seperti:

  • Menyeimpan data gambar di Database.
  • Melakukan filter terhadap data yang di-upload.
  • Melakukan pengolahan citra atau image processing dengan PHP
  • dll.

Selamat belajar.