Ada beberapa hal yang perlu dilakukan sebelum bisa menyimpan gambar ke dalam sebuah field table database yang bertipe blob.
Mempersiapkan Database dan Table
Buatlah sebuah database dengan nama misalkan "gallery". Kemudian buat tabel di dalamnya dengan nama "pictures" dengan struk seperti di bawah:Nama Field | Tipe Data | Keterangan |
---|---|---|
id | integer | primary key, auto increment |
file_name | varchar(100) | |
mime_type | varchar(50) | |
file_data | mediumblob |
- create database gallery;
- use gallery;
- CREATE TABLE `pictures` (
- `id` int NOT NULL AUTO_INCREMENT,
- `file_name` varchar(100) NOT NULL,
- `mime_type` varchar(50) NOT NULL,
- `file_data` mediumblob DEFAULT NULL,
- PRIMARY KEY (`id`)
- );
Membuat Upload Form
Buat html form untuk mengupload gambar, gunakan script di bawah:- <!-- file form.html-->
- <form name="form1" id="form1" method="post" action="upload.php" enctype="multipart/form-data">
- Gambar: <input type="file" name="gambar" id="gambar" />
- <input type="submit" name="Submit" id="Submit" value="Upload" />
- </form>
Menyimpan Gambar Ke Database
Langkah selanjutnya adalah menyimpan gambar ke database, gunakalah script php di bawah untuk menyimpan gambar ke database.- <?php
- $connection = mysql_connect("dbhost", "dbuser", "dbpassword"); //sesuaikan dengan database anda
- mysql_select_db("gallery");
- if($_FILES['gambar']['size'] > 0 && $_FILES['gambar']['error'] == 0){
- $fileName = $_FILES['gambar']['name'];
- $mimeType = $_FILES['gambar']['type'];
- $tmpFile = fopen($_FILES['gambar']['tmp_name'], 'rb'); // (fileName, mode)
- $fileData = fread($tmpFile, filesize($_FILES['gambar']['tmp_name']));
- $fileData = addslashes($fileData);
- $query = "insert into pictures set file_name='$fileName',mime_type='$mimeType', file_data='$fileData'";
- mysql_query($query) or die("Upload Gambar Gagal: ".mysql_error());
- echo "Gambar telah disimpan";
- }
- ?>
Menampilkan Gambar Dari Database
Langkah terakhir adalah menampilkan gambar yang telah disimpan di database. Untuk menampilkan gambar dibutuhkan 2 file. File gambar.php untuk me-render gambar dan file gallery.php untuk menampilkan gallery keseluruhan gambar yang tersimpan di database. Gunakanlah script berikut:File gambar.php
- <?php
- $connection = mysql_connect("dbhost", "dbuser", "dbpassword"); //sesuaikan dengan database anda
- mysql_select_db("gallery");
- $idFile = $_GET['id'];
- $dataGambar = mysql_fetch_array(mysql_query("select * from pictures where id='$idFile'"));
- $filename = $dataGambar['file_name'];
- $mime_type = $dataGambar['mime_type'];
- $filedata = $dataGambar['file_data'];
- header("content-disposition: inline; filename=$filename");
- header("content-type: $mime_type");
- header("content-length: ".strlen($filedata));
- echo ($filedata);
- ?>
- <?php
- $connection = mysql_connect("dbhost", "dbuser", "dbpassword"); //sesuikan dengan database anda
- mysql_select_db("gallery");
- $query = "select * from pictures";
- $result = mysql_query($query);
- $i=1;
- echo '<table>';
- echo '<tr>';
- while($gambar = mysql_fetch_array($result)){
- echo '<td><img src="gambar.php?id='.$gambar['id'].'" width="150" /></td>';
- if($i % 4 == 0){
- echo '</tr><tr>';
- }
- $i++;
- }
- echo '</tr>';
- echo '</table>';
- ?>
0 comments:
Post a Comment