Friday, October 28, 2011

Menyimpan image kedatabase dengan php

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
Atau gunakan SQL Query berikut:
  1. create database gallery;  
  2. use gallery;  
  3. CREATE TABLE `pictures` (  
  4.   `id` int  NOT NULL AUTO_INCREMENT,  
  5.   `file_name` varchar(100)  NOT NULL,  
  6.   `mime_type` varchar(50)  NOT NULL,  
  7.   `file_data` mediumblob  DEFAULT NULL,  
  8.   PRIMARY KEY (`id`)  
  9. );  

Membuat Upload Form

Buat html form untuk mengupload gambar, gunakan script di bawah:
  1. <!-- file form.html-->  
  2. <form name="form1" id="form1" method="post" action="upload.php" enctype="multipart/form-data">  
  3.   Gambar: <input type="file" name="gambar" id="gambar" />  
  4.   <input type="submit" name="Submit" id="Submit" value="Upload" />  
  5. </form>  
Simpan dengan nama file form.html.

Menyimpan Gambar Ke Database

Langkah selanjutnya adalah menyimpan gambar ke database, gunakalah script php di bawah untuk menyimpan gambar ke database.
  1. <?php  
  2. $connection = mysql_connect("dbhost""dbuser""dbpassword"); //sesuaikan dengan database anda  
  3. mysql_select_db("gallery");  
  4.   
  5. if($_FILES['gambar']['size'] > 0 && $_FILES['gambar']['error'] == 0){  
  6.   $fileName = $_FILES['gambar']['name'];  
  7.   $mimeType = $_FILES['gambar']['type'];  
  8.   $tmpFile = fopen($_FILES['gambar']['tmp_name'], 'rb'); // (fileName, mode)  
  9.   $fileData = fread($tmpFilefilesize($_FILES['gambar']['tmp_name']));  
  10.   $fileData = addslashes($fileData);  
  11.     
  12.   $query = "insert into pictures set file_name='$fileName',mime_type='$mimeType', file_data='$fileData'";  
  13.   mysql_query($queryor die("Upload Gambar Gagal: ".mysql_error());  
  14.   echo "Gambar telah disimpan";  
  15. }  
  16. ?>   
Di baris 8, file yang diupload dibuka menggunakan fungsi fopen dengan mode 'rb' yang artinya membuka file dengan mode read  dan mode binary. Di baris 9 membaca file yang telah dibuka di baris 8 dengan fungsi fread. Selanjutnya di baris 12 dan 13 menyimpan gambar ke database. Simpan script di atas dengan nama upload.php.

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

  1. <?php  
  2. $connection = mysql_connect("dbhost""dbuser""dbpassword"); //sesuaikan dengan database anda  
  3. mysql_select_db("gallery");  
  4. $idFile = $_GET['id'];  
  5.   
  6. $dataGambar = mysql_fetch_array(mysql_query("select * from pictures where id='$idFile'"));  
  7. $filename = $dataGambar['file_name'];  
  8. $mime_type = $dataGambar['mime_type'];  
  9. $filedata = $dataGambar['file_data'];  
  10. header("content-disposition: inline; filename=$filename");  
  11. header("content-type: $mime_type");  
  12. header("content-length: ".strlen($filedata));  
  13. echo ($filedata);  
  14. ?>   
File gallery.php

  1. <?php  
  2. $connection = mysql_connect("dbhost""dbuser""dbpassword"); //sesuikan dengan database anda  
  3. mysql_select_db("gallery");  
  4.   
  5. $query = "select  * from pictures";  
  6. $result = mysql_query($query);  
  7. $i=1;  
  8. echo '<table>';  
  9. echo '<tr>';  
  10. while($gambar = mysql_fetch_array($result)){  
  11.   echo '<td><img src="gambar.php?id='.$gambar['id'].'" width="150" /></td>';  
  12.   if($i % 4 == 0){  
  13.     echo '</tr><tr>';  
  14.   }  
  15.   $i++;  
  16. }  
  17. echo '</tr>';  
  18. echo '</table>';  
  19. ?>    

0 comments:

Post a Comment

Related Posts Plugin for WordPress, Blogger...

Berlangganan Tutorial

Enter your email address:

Delivered by FeedBurner

Donasi Untuk Blog ini

Powered by Blogger.

Popular Posts

Followers

Visitor

Rank

Share For You © 2013 Supported by Best Blogger Templates and Premium Blog Templates

Receive all updates via Facebook. Just Click the Like Button Below...

Powered By ErwinTipsTrick