DISKON TERBATAS! Masukkan kupon "skillbaru" saat checkout di kelas apa saja

Logo Koala Skodev mengetik

Skodev

Belajar coding dalam bahasa Indonesia

CARA UPLOAD GAMBAR DENGAN PHP DAN MYSQLI

Panduan langkah demi langkah cara upload gambar menggunakan PHP dan MySQLi, dengan penjelasan mudah dipahami untuk pemula.

Daftar Isi:

Persiapan Awal
Form Upload Gambar
Proses Upload dengan PHP
Menampilkan Gambar yang Telah ...
Kesimpulan

Mengupload gambar ke server merupakan salah satu fitur yang sering dibutuhkan pada website. Artikel ini akan membahas bagaimana kamu bisa mengupload gambar dengan menggunakan PHP dan database MySQLi secara sederhana dan mudah dimengerti.

Persiapan Awal

Sebelum kamu memulai, pastikan server lokal atau hosting yang kamu gunakan sudah mendukung PHP dan memiliki MySQLi. Kamu juga perlu membuat sebuah database dan tabel untuk menyimpan informasi gambar.

Membuat Database dan Tabel

Buka phpMyAdmin dan buatlah database baru. Kemudian, buat tabel dengan struktur sebagai berikut:

  • id : tipe data INT, dengan pengaturan AUTO_INCREMENT PK.
  • image : tipe data VARCHAR, untuk menyimpan nama file gambar.

Contoh SQL untuk membuat tabel:

CREATE TABLE `images` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `image` VARCHAR(255) NOT NULL,
  PRIMARY KEY (`id`)
);

Form Upload Gambar

Buatlah sebuah file HTML yang akan digunakan sebagai form untuk mengupload gambar.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Upload Gambar</title>
</head>
<body>
    <form action="upload.php" method="post" enctype="multipart/form-data">
        Pilih gambar untuk diupload:
        <input type="file" name="fileToUpload" id="fileToUpload">
        <input type="submit" value="Upload Image" name="submit">
    </form>
</body>
</html>

Attribute enctype="multipart/form-data" sangat penting untuk digunakan saat mengupload file, karena attribute tersebut memungkinkan file untuk dikirim melalui form.

Proses Upload dengan PHP

Buat file baru dengan nama upload.php, file ini akan menangani proses upload gambar.

Menangkap File pada PHP

<?php
if (isset($_POST["submit"])) {
    $target_dir = "uploads/";
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
    $uploadOk = 1;
    $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

    // Cek apakah berkas yang diupload adalah gambar.
    if(isset($_FILES["fileToUpload"])) {
        $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
        if($check !== false) {
            echo "Berkas adalah gambar - " . $check["mime"] . ".";
            $uploadOk = 1;
        } else {
            echo "Berkas bukan gambar.";
            $uploadOk = 0;
        }
    }
    // Lainnya: cek ukuran gambar, format file, dan pengecekan lainnya.

    // Lanjutkan upload jika $uploadOk bernilai 1.
    if ($uploadOk == 1) {
        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
            echo "Gambar ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " berhasil diupload.";
            
            // Sisipkan nama gambar ke dalam database.
            $mysqli = new mysqli("localhost", "username", "password", "database_name");

            // Cek koneksi
            if ($mysqli -> connect_errno) {
                echo "Gagal terkoneksi ke MySQL: " . $mysqli -> connect_error;
                exit();
            }

            $filename = basename($_FILES["fileToUpload"]["name"]);
            $sql = "INSERT INTO images (image) VALUES ('$filename')";

            if ($mysqli->query($sql) === TRUE) {
                echo "Nama file berhasil disimpan ke database.";
            } else {
                echo "Error: " . $sql . "<br>" . $mysqli->error;
            }

            $mysqli->close();

        } else {
            echo "Terjadi kesalahan saat mengupload gambar.";
        }
    }
}
?>

Menampilkan Gambar yang Telah Diupload

Setelah gambar berhasil diupload, kamu bisa menampilkan gambar tersebut dari server dengan cara berikut:

<?php
$mysqli = new mysqli("localhost", "username", "password", "database_name");
$result = $mysqli->query("SELECT image FROM images");

while($row = $result->fetch_assoc()) {
    $image = $row['image'];
    echo "<img src='uploads/$image' />";
}

$mysqli->close();
?>

Kesimpulan

Proses upload gambar menggunakan PHP dan MySQLi tidak terlalu rumit. Dengan mengikuti langkah-langkah di atas, kamu sudah bisa membuat fitur upload gambar pada website dengan mudah. Selalu ingat untuk melakukan validasi dan sanitasi file yang diupload untuk menjaga keamanan server. Selamat mencoba!


Daftar newsletter skodev masukkan emailmu untuk dapat informasi menarik dari dunia koding