Upload File Pada PHP

CSS

Dengan PHP, sangat mudah untuk mengunggah file ke server. Namun, dengan kemudahan tersebut juga sangat rentan terjadinya malware, jadi selalu berhati-hati saat mengizinkan unggahan file!

Configure File "php.ini"

Sebelumnya pastikan terlebih dahulu pada "php.ini" untuk set "file_uploads" menjadi On.

file_uploads = On

Buat Form dengan HTML

Selanjutnya, buat form pada HTML yang memungkinkan pengguna memilih file gambar yang ingin mereka unggah:

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

Beberapa hal yang perlu diperhatikan pada script HTML di atas:

  • Pastikan formulir menggunakan metode = "post"
  • Formulir juga membutuhkan atribut berikut: enctype = "multipart/form-data". Ini menentukan tipe konten mana yang digunakan saat mengirimkan formulir

Tanpa persyaratan di atas, unggahan file tidak akan berfungsi.

Hal-hal lain yang perlu diperhatikan:

  • Atribut type = "file" dari tag <input> menunjukkan bidang input sebagai kontrol pilih file, dengan tombol "Browse" di sebelah kontrol input

Formulir di atas mengirimkan data ke file bernama "upload.php", yang akan kita buat.

Buat File Unggahan PHP Script

File "upload.php" berisi kode untuk mengunggah file:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Cek apakah file benar gambar atau bukan
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File adalah gambar - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File bukan gambar.";
        $uploadOk = 0;
    }
}
?>

Letakan file upload.php diatas satu folder dengan file html sebelumnya.

Script PHP menjelaskan:

  • $ target_dir = "uploads/" - menentukan direktori tempat file akan ditempatkan
  • $ target_file menentukan jalur file yang akan diunggah
  • $ uploadOk = 1 belum digunakan (akan digunakan nanti)
  • $ imageFileType memegang ekstensi file dari file (dalam huruf kecil)
  • Selanjutnya, periksa apakah file gambar adalah gambar yang sebenarnya atau gambar palsu

Periksa apakah File Sudah Ada

Sekarang kita bisa menambahkan beberapa batasan.

Pertama, kami akan memeriksa apakah file sudah ada di folder "unggahan". Jika ya, pesan kesalahan ditampilkan, dan $uploadOk diatur ke 0:

// Cek apakah file sudah ada
if (file_exists($target_file)) {
    echo "Maaf, file sudah ada.";
    $uploadOk = 0;
}

Batasi Ukuran File

Bidang input file dalam formulir HTML kami di atas bernama "fileToUpload".

Sekarang, kami ingin memeriksa ukuran file. Jika file lebih besar dari 500KB, pesan kesalahan ditampilkan, dan $uploadOk diatur ke 0:

if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Maaf, file Anda terlalu besar.";
    $uploadOk = 0;
}

Batasi Jenis File

Kode di bawah ini hanya memungkinkan pengguna untuk mengunggah file JPG, JPEG, PNG, dan GIF. Semua jenis file lainnya memberikan pesan kesalahan sebelum menyetel $uploadOk ke 0:

// Izinkan format file tertentu
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Maaf, hanya JPG, JPEG, PNG & GIF file yang dibolehkan.";
    $uploadOk = 0;
}

Selesaikan Unggah Berkas Script PHP

File "upload.php" lengkap sekarang terlihat seperti ini:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Cek apakan file berformat gambar atau bukan
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File adalah gambar - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File bukan sebuah gambar.";
        $uploadOk = 0;
    }
}
// Cek file sudah ada atau belum
if (file_exists($target_file)) {
    echo "Maaf, file sudah ada.";
    $uploadOk = 0;
}
// Cek ukuran file
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Maaf, ukuran file Anda terlalu besar.";
    $uploadOk = 0;
}
// Mengijinkan format file tertentu
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Maaf, hanya JPG, JPEG, PNG & GIF file yang diijinkan.";
    $uploadOk = 0;
}
// Cek apabila $uploadOk bernilai 0 maka terdapat kesalahan
if ($uploadOk == 0) {
    echo "Maaf, file tidak bisa diupload.";
// jika semua OK maka bisa dilanjutkan proses
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "File ". basename( $_FILES["fileToUpload"]["name"]). " berhasil diupload.";
    } else {
        echo "Maaf, terdapat kesalahan dalam proses upload.";
    }
}
?>

 


Artikel Terkait

;