Umumnya, ketika kita mengunggah file gambar di PHP, gambar yang diunggah disimpan di direktori server dan masing-masing nama gambar disimpan di database. Pada saat ditampilkan, file diambil dari server dan gambar ditampilkan di halaman web. Namun, jika Anda tidak ingin memakan ruang server, file tersebut dapat disimpan di database saja. Anda dapat mengunggah gambar tanpa menyimpan file secara fisik di server menggunakan database MySQL. Sangat mudah untuk menyimpan dan mengambil gambar dari database menggunakan PHP dan MySQL
Jika Anda khawatir tentang ruang server dan memerlukan ruang kosong di server Anda, Anda dapat memasukkan file gambar langsung ke database tanpa mengunggahnya ke direktori server. Prosedur ini membantu mengoptimalkan ruang server karena konten file gambar disimpan di database, bukan di server. Dalam tutorial ini, kami akan menunjukkan cara menyimpan file gambar ke dalam database MySQL dan mengambil gambar dari database menggunakan PHP
Sebelum mulai mengintegrasikan unggahan file dengan database, lihat struktur file
store_retrieve_image_from_database/ ├── dbConfig.php ├── index.php ├── upload.php ├── view.php └── css/ └── style.css
Masukkan File Gambar di MySQL
MySQL memiliki tipe data BLOB [binary large object] yang dapat menampung data biner dalam jumlah besar. Tipe data BLOB sangat cocok untuk menyimpan data gambar dalam database. Di MySQL, empat tipe BLOB tersedia – TINYBLOB, BLOB, MEDIUMBLOB, dan LONGBLOB. Tipe data LONGBLOB sangat cocok untuk menyimpan data file gambar
Buat Tabel Basis Data
Untuk menyimpan konten file, tabel diperlukan dalam database. SQL berikut membuat tabel images
_ dengan bidang tipe data LONGBLOB di database MySQL
CREATE TABLE `images` [ `id` int[11] NOT NULL AUTO_INCREMENT, `image` longblob NOT NULL, `created` datetime NOT NULL DEFAULT current_timestamp[], PRIMARY KEY [`id`] ] ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;_
Konfigurasi Basis Data [dbConfig. php]
File dbConfig.php
_ digunakan untuk menghubungkan dan memilih database. Tentukan host basis data [$dbHost
_], nama pengguna [$dbUsername
], kata sandi [
CREATE TABLE `images` [ `id` int[11] NOT NULL AUTO_INCREMENT, `image` longblob NOT NULL, `created` datetime NOT NULL DEFAULT current_timestamp[], PRIMARY KEY [`id`] ] ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;0], dan nama [
CREATE TABLE `images` [ `id` int[11] NOT NULL AUTO_INCREMENT, `image` longblob NOT NULL, `created` datetime NOT NULL DEFAULT current_timestamp[], PRIMARY KEY [`id`] ] ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;1] sesuai kredensial basis data MySQL Anda
// Database configuration_
$dbHost = "localhost";
$dbUsername = "root";
$dbPassword = "root";
$dbName = "codexworld";// Create database connection
$db = new mysqli[$dbHost, $dbUsername, $dbPassword, $dbName];// Check connection
if [$db->connect_error] {
die["Connection failed: " . $db->connect_error];
}
Formulir Pengunggahan Gambar
Buat formulir HTML dengan kolom input file untuk memilih file gambar yang akan diunggah. Pastikan
tag berisi atribut berikut- metode = "posting"
- enctype="multipart/formulir-data"
Select Image File:
Simpan File Gambar di Database [unggah. php]
File
CREATE TABLE `images` [ `id` int[11] NOT NULL AUTO_INCREMENT, `image` longblob NOT NULL, `created` datetime NOT NULL DEFAULT current_timestamp[], PRIMARY KEY [`id`] ] ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;2 menangani upload gambar dan proses penyisipan database
- Periksa apakah pengguna memilih file gambar untuk diunggah
- Ambil konten file gambar dengan tmp_name menggunakan fungsi file_get_contents[] PHP
- Masukkan konten biner dari gambar ke dalam database menggunakan PHP dan MySQL
- Tampilkan status pengunggahan gambar kepada pengguna
// Include the database configuration file
require_once 'dbConfig.php';// If file upload form is submitted
$status = $statusMsg = '';
if[isset[$_POST["submit"]]]{
$status = 'error';
if[!empty[$_FILES["image"]["name"]]] {
// Get file info
$fileName = basename[$_FILES["image"]["name"]];
$fileType = pathinfo[$fileName, PATHINFO_EXTENSION];// Allow certain file formats
$allowTypes = array['jpg','png','jpeg','gif'];
if[in_array[$fileType, $allowTypes]]{
$image = $_FILES['image']['tmp_name'];
$imgContent = addslashes[file_get_contents[$image]];// Insert image content into database
$insert = $db->query["INSERT into images [image, created] VALUES ['$imgContent', NOW[]]"];if[$insert]{
$status = 'success';
$statusMsg = "File uploaded successfully.";
}else{
$statusMsg = "File upload failed, please try again.";
}
}else{
$statusMsg = 'Sorry, only JPG, JPEG, PNG, & GIF files are allowed to upload.';
}
}else{
$statusMsg = 'Please select an image file to upload.';
}
}// Display status message
echo $statusMsg;
?>
Ambil gambar dari database [view. php]
Dalam file
CREATE TABLE `images` [ `id` int[11] NOT NULL AUTO_INCREMENT, `image` longblob NOT NULL, `created` datetime NOT NULL DEFAULT current_timestamp[], PRIMARY KEY [`id`] ] ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;_3, kami akan mengambil konten gambar dari database MySQL dan mencantumkannya di halaman web
- Parameter data, charset, dan base64 pada atribut src, digunakan untuk menampilkan image BLOB dari database MySQL
// Include the database configuration file_
require_once 'dbConfig.php';// Get image data from database
$result = $db->query["SELECT image FROM images ORDER BY id DESC"];
?> num_rows > 0]{ ?>
fetch_assoc[]]{ ?>
Image[s] not found...
Unggah Banyak Gambar dan Simpan di Database menggunakan PHP dan MySQL
Kesimpulan
Tutorial ini membantu Anda mengintegrasikan fungsi pengunggahan file tanpa menyimpan file di server. Anda dapat menggunakan skrip contoh ini untuk mengunggah & menyimpan gambar dalam database, dan mengambil gambar dari database, dan menampilkannya di halaman web menggunakan PHP dan MySQL. Agar proses pengunggahan gambar mudah digunakan, gunakan jQuery untuk mengunggah file dengan progress bar menggunakan Ajax dan PHP
Apakah Anda ingin mendapatkan bantuan implementasi, atau memodifikasi atau meningkatkan fungsionalitas skrip ini?
Bagaimana cara mengunggah gambar dan menampilkannya di PHP?
"; $image=$_FILES["file"]["name"]; /* Displaying Image*/ $img="upload/". $image; echo ''; } } } else { echo "Invalid file"; } ?>