• Memasukan file gambar kedalam database dengan tipe data BLOB


    Pendahuan
    Ada dua teknik yang digunakan dalam mengupload file khususnya file gambar yaitu :
    1. Cara pertama : Mengupload file gambar dan menyimpan file gambar tersebut kedalam sebuah folder image, sedangkan nama atau alamat gambar tersebut disimpan kedalam sebuah database gambar.
    2. Cara Kedua : Mengupload dan menyimpan gambar tersebut kedalam sebuah database dengan tipe data BLOB






      Cara Kedua
      Pada artikel ini saya akan menjelaskan cara yang kedua yaitu dengan cara menyimpan file gambar kedalam sebuah database.  kita membutuhkan sebuah file dengan tipedata BLOB atau Binary Large OBject.  untuk itu kita membuat sebuah tabel “gambar”  di database “test” misalnya :
      CREATE TABLE gambar (
      id INT NOT NULL AUTO_INCREMENT,
      file_content BLOB,
      file_name varchar(256) NOT NULL,
      file_type varchar(256) NOT NULL,
      file_size int(50) NOT NULL,
      PRIMARY KEY(id)
      ) ;
      Sehingga jika sudah ada datanya akan tampil seperti dibawah ini. (saya menggunakan PHPMyAdmin)


      Adapun file-file yang dibutuhkan adalah :
      1. koneksi.php untuk koneksi ke database
      2. index.php untuk halaman utama dan form upload gambar
      3. upload.php untuk memproses input gambar dan menyimpan ke database
      4. view.php untuk menampilkan data sebuah file gambar yang tersimpan
      5. view2.php untuk menampilkan salah satu gambar yang dipilih


        Potongan Program
        //KONEKSI DATABASE//
        include “koneksi.php”;
        //AMBIL DARI FORM INPUT//
        $file_name = $_FILES['file']['name'];
        $tmp_name  = $_FILES['file']['tmp_name']; //nama local temp file di server
        $file_size = $_FILES['file']['size'];
        $file_type = $_FILES['file']['type']; //tipe filenya (langsung detect MIMEnya)
        //OPERASI FILE//
        $fp = fopen($tmp_name, ‘r’); // open file (read-only, binary)
        $file = fread($fp, $file_size) or die(“Tidak dapat membaca source file”); // read file
        $file_content = mysql_real_escape_string($file) or die(“Tidak dapat membaca source file”); // parse image ke string
        fclose($fp);
        //QUERY DATABASE//
        $qu = “INSERT INTO gambar(file_content,file_name,file_type,file_size) VALUES(‘$file_content’,'$file_name’,'$file_type’,'$file_size’)”;
        $re = mysql_query($qu);
        //CEK HASIL QUERY//
        if($re){
        echo $file_name.” berhasil disimpan ke database”;
        ?>

        Lihat Gambar

        }else{
        echo mysql_error();
        }
        ?>
        Setelah gambar di upload dan dijadikan file temporial di server, gambar tersebut dibaca dan diubah dalam bentuk biner. setelah itu nilainya di ubah lagi menjadi serangkaian nilai string untuk selanjutnya disimpan dalam sebuah field dengan tipedata Blob.
        Menampilkan Gambar
        Setelah saya coba ternyata gambar yang ditampilkan dalam satu halaman hanya satu. berbeda dengan teknik pertama yang  memungkinkan gambar bisa ditampilkan banyak dalam satu halaman karena hanya memanggil alamat gambarnya saja. setelah saya perhatikan ini ada masalah pada syntax header(“Content-type: $data[file_type]“);  dimana dalam sebuah halaman hanya diperbolehkan satu header untuk satu gambar.

      0 komentar:

      Leave a Reply

      Neziakuw Gadget


       
      Username
      Password

      Sms gratis

      Photos



      EnglishFrenchGermanItalianPortugueseRussianSpanish