DISKON TERBATAS! Masukkan kupon "skillbaru" saat checkout di kelas apa saja
Skodev
Belajar coding dalam bahasa Indonesia
Daftar Isi:
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.
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.
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`)
);
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.
Buat file baru dengan nama upload.php
, file ini akan menangani proses upload gambar.
<?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.";
}
}
}
?>
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();
?>
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!
Link terkait: