Single File Database Yang Tersedia

masalahnya tinggal php, apakah saya selalu harus bikin temporary drive untuk menampilkan gambar untuk di-view ?, errr….., streaming langsung database -> php -> user, bukan database -> php

image User di sini melihat gambar tersebut melalui apa? Browser? Fasilitas web server membaca file dan mengirimkannya ke user itu sudah dari sononya. Lalu kenapa PHP disuruh mengirim isi database ke file? Fungsi-fungsi yang tersedia segabruk-gabruk, segambreng-gambreng. Paling gampang ‘echo xxx’ (siapa yang tidak tahu?) Buat operasi-operasi grafik ada GD. Kasihlah di script tersebut header-header HTTP yang perlu, misalnya Content-Type, Content-Length, Content-Disposition, dst. Ini urusannya ke HTTP dan web server. Masalahnya bukan di PHP, jadi pelajari di 2 hal tersebut.


btw bisa kasih contoh untuk nampilin blob yang berupa gambar ke browser dengan menggunakan fungsi ?, pakai mysql aja dulu biar

URL dari rekan sebelah sudah memadai, atau cari-cari di Google. Sebagai tambahan, program untuk debugging juga perlu, salah satunya wget (populer di Linux, cari yang versi Windows). Dari wget kita bisa tahu header apa yang dikeluarkan web server, untuk kemudian ditiru (kalo mau formal baca-baca RF2616). Pengertian web statis, dinamis, caching, proxy, dst, mengacu ke RFC tersebut, yang pasti semua sesuai header. Misalnya ditambah Last-Modified suatu image bisa dianggap statis.

Contoh untuk gambar captcha beserta hasil wget:

header(‘Content-Type: image/png’);
header(‘Content-Disposition: attachment; filename="captcha.png"’);

imagepng($im);

$ /c/net/wget -d http://localhost/capca.php
DEBUG output created by Wget 1.10.2 on Windows.

–17:07:59–  http://localhost/capca.php
           => `capca.php’
Resolving localhost… seconds 0.00, 127.0.0.1
Caching localhost => 127.0.0.1
Connecting to localhost|127.0.0.1|:80… seconds 0.00, connected.
Created socket 1884.
Releasing 0x00a32778 (new refcount 1).

—request begin—
GET /capca.php HTTP/1.0
User-Agent: Wget/1.10.2
Accept: */*
Host: localhost
Connection: Keep-Alive

—request end—
HTTP request sent, awaiting response…
—response begin—
HTTP/1.1 200 OK
Date: Tue, 30 Dec 2008 10:07:59 GMT
Server: Apache/2.2.4 (Win32) PHP/5.2.3
X-Powered-By: PHP/5.2.3
Content-Disposition: attachment; filename="captcha.png"
Content-Length: 2121
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: image/png

—response end—
200 OK
Registered socket 1884 for persistent reuse.
Length: 2.121 (2.1K) [image/png]

    0K ..                                                    100%   70.30 MB/s

17:07:59 (70.30 MB/s) – `capca.php’ saved [2121/2121]

Sebagai contoh ini http://www.ngirit.info/files/portablebiz2008.zip embedded library sqlite3 modified + internal compressed data.

Saya melihat topik ini, rasa-rasanya koq penting betul database harus 1 file? Contoh prg di atas malah program + database dijadikan 1. Sebetulnya ada masalah apa bila program + database + library terpisah-pisah, hingga menjadi banyak file? Toh sudah ada installer, tinggal klak-klik – kluk, muncul iconnya, beres. User sudah paham apa yang harus dikerjakan.

Lalu mengenai sqlite. Dulu saya pernah mencoba ini, dan ada 2 isu serius di sini: yaitu program clientnya (SQL manager) minim, dan sifatnya yang ‘single writer multiple reader’. Untuk pekerjaan yang butuh banyak proses maupun thread, tentu butuh kerja tambahan agar bisa multiple writer. ACID-nya sqlite tentu ibarat pepesan kosong, karena di multiple user ini yang bakal runyam urusannya (apalagi kalo dioprek sendiri). SQL manager yang minim (fasilitas) juga kendala tidak ringan. Bila Firebird dan MySQL tidak didukung client yang OK, masuk kotak urusannya. Mudah-mudahan di sqlite sekarang sudah lebih baik.

1 Komentar »

  1. adi said

    dsfsdf

RSS feed for comments on this post · TrackBack URI

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s