Menyimpan file dalam database sering kali menjadi solusi yang efisien untuk aplikasi web yang membutuhkan pengelolaan data berukuran besar, seperti gambar, video, atau dokumen. Di MySQL, tipe data yang sering digunakan untuk menyimpan file dalam bentuk binary adalah LONGBLOB. Dalam tutorial ini, kita akan membahas cara menyimpan dan membuka file menggunakan tipe data LONGBLOB dengan PHP dan MySQL.
Menyimpan File ke dalam Database
Untuk menyimpan file ke dalam database, pertama-tama kita harus memastikan bahwa tabel di MySQL sudah memiliki kolom dengan tipe LONGBLOB. Kolom ini akan menampung data file dalam format binary. Berikut adalah contoh struktur tabelnya:
SQL Code:
CREATE TABLE files (
id INT AUTO_INCREMENT PRIMARY KEY,
filename VARCHAR(255) NOT NULL,
filedata LONGBLOB NOT NULL
);
Setelah itu, menggunakan PHP, kita dapat memanfaatkan fungsi file_get_contents() untuk membaca file dan mengubahnya menjadi data binary. Berikut adalah kode PHP untuk menyimpan file:
PHP Code:
if ($_FILES['file']['error'] == 0) {
$file = file_get_contents($_FILES['file']['tmp_name']);
$filename = $_FILES['file']['name'];
$stmt = $conn->prepare("INSERT INTO files (filename, filedata) VALUES (?, ?)");
$stmt->bind_param("sb", $filename, $file);
Membuka File dari Database
Untuk membuka file yang telah disimpan dalam kolom LONGBLOB, kita dapat menggunakan PHP untuk mengambil data binary dan mengirimnya kembali ke browser. Berikut adalah contoh kode untuk mengambil dan menampilkan file:
PHP
$stmt = $conn->prepare("SELECT filename, filedata FROM files WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($filename, $filedata);
$stmt->fetch();
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=" . $filename);
echo $filedata;
Dengan langkah-langkah ini, Anda dapat dengan mudah menyimpan dan membuka file menggunakan tipe data LONGBLOB dalam database MySQL, memberikan solusi yang efisien dan praktis untuk aplikasi berbasis web.