Upload Gambar dengan PHP dan Simpan di Database (Lengkap untuk Pemula)
Pelajari cara upload gambar dengan PHP dan simpan ke database MySQL secara aman. Tutorial ini membahas form upload, validasi file, penyimpanan gambar, dan contoh kode lengkap.
Pengenalan Upload Gambar di PHP
Fitur upload gambar sering digunakan dalam website seperti profil user, artikel blog, produk, dan galeri. Dengan PHP, Anda dapat mengunggah gambar dari form HTML lalu menyimpannya ke server dan mencatat informasinya ke database.
Struktur Database untuk Menyimpan Gambar
Buat tabel images di MySQL:
CREATE TABLE images (
id INT AUTO_INCREMENT PRIMARY KEY,
filename VARCHAR(255),
uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Form Upload Gambar (HTML)
Buat file upload.php:
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Upload Gambar</title>
</head>
<body>
<h2>Upload Gambar</h2>
<form action="upload.php" method="POST" enctype="multipart/form-data">
<input type="file" name="gambar" accept="image/*" required><br><br>
<button type="submit" name="upload">Upload</button>
</form>
</body>
</html>
Koneksi Database MySQL
Buat file koneksi.php:
<?php
$conn = mysqli_connect("localhost", "root", "", "belajarphp");
if (!$conn) {
die("Koneksi database gagal: " . mysqli_connect_error());
}
?>
Proses Upload dan Simpan ke Database
Tambahkan kode PHP berikut di upload.php:
<?php
include 'koneksi.php';
if (isset($_POST['upload'])) {
$namaFile = $_FILES['gambar']['name'];
$tmpFile = $_FILES['gambar']['tmp_name'];
$ukuran = $_FILES['gambar']['size'];
$ekstensiValid = ['jpg', 'jpeg', 'png', 'gif'];
$ekstensi = strtolower(pathinfo($namaFile, PATHINFO_EXTENSION));
if (!in_array($ekstensi, $ekstensiValid)) {
echo "Format file tidak diizinkan!";
exit;
}
if ($ukuran > 2 * 1024 * 1024) {
echo "Ukuran gambar maksimal 2MB!";
exit;
}
$namaBaru = uniqid() . '.' . $ekstensi;
move_uploaded_file($tmpFile, "uploads/" . $namaBaru);
$query = "INSERT INTO images (filename) VALUES ('$namaBaru')";
mysqli_query($conn, $query);
echo "Gambar berhasil diupload!";
}
?>
Penjelasan Kode
- $_FILES digunakan untuk mengambil data file upload.
- pathinfo() mengambil ekstensi file.
- uniqid() mencegah nama file duplikat.
- move_uploaded_file() memindahkan file ke folder server.
Menampilkan Gambar dari Database
Contoh menampilkan gambar yang sudah diupload:
<?php
$result = mysqli_query($conn, "SELECT * FROM images ORDER BY id DESC");
while ($row = mysqli_fetch_assoc($result)) {
echo '<img src="uploads/'.$row['filename'].'" width="150">';
}
?>
Tips Keamanan Upload Gambar
- Batasi ekstensi file yang diperbolehkan.
- Batasi ukuran file upload.
- Gunakan nama file unik.
- Simpan file di folder khusus (misalnya
uploads/). - Jangan menyimpan file executable.
Kesimpulan
Upload gambar dengan PHP dan menyimpannya ke database dapat dilakukan dengan mudah jika memahami alur upload file, validasi, dan penyimpanan data. Dengan menerapkan validasi yang tepat, sistem upload akan aman dan stabil.
Internal Link Terkait
FAQ (Pertanyaan Umum)
Apakah gambar disimpan di database?
Tidak langsung. Yang disimpan di database adalah nama file, sedangkan gambar disimpan di folder server.
Format gambar apa saja yang diperbolehkan?
Biasanya JPG, JPEG, PNG, dan GIF.
Berapa ukuran maksimal upload gambar?
Disarankan maksimal 2MB untuk performa dan keamanan.
Apakah upload gambar aman?
Aman jika menggunakan validasi ekstensi, ukuran, dan nama file unik.
Tags
#PHP #UploadGambar #MySQL #BelajarPHP #WebDeveloper #TutorialPHP
Artikel Lainnya:
- Panduan Lengkap Mobile JKN: Cara Instal & Daftar Antrian Online Puskesmas Ajibarang I
- Cara Mencegah SQL Injection di PHP & MySQL (Keamanan Web Klinik)
- Cara Membuat Sistem Login Multi-Level (Admin, Bidan/Dokter, Pasien) di PHP & MySQL
- Cara Membuat Desain Database Sistem Rekam Medis MySQL (Relasi One-to-Many)
- Mudahnya Membuat Link Chat Langsung dengan WA Generator imandroid.web.id
Belum ada komentar. Jadilah yang pertama berkomentar!