Re: Slike u Mysql
Ux krajnje sporna argumentacija oko komercijalnih servera.... Ako nadjete ovakav kakav je sinisa opisao - promenite provajdera. Posto mislim da je to ipak tesko naci (a videh svakojakih gluposti na tu temu) - mali tip za *nix servere (na kojima prakticno jedino i ima smisla terati php / mysql kombinaciju) - mozete i iz ftp klijenta (ako nemate shell nalog) dati svom root web folderu (ili kom vec) 777 privilegije, a zatim iz php-a napraviti folder u koji nameravate da smestate slike (npr. <?php mkdir("myimages", 0755); ?>) i zatim vratiti root folder na 755, time dobijate folder "myimages" ciji je vlasnik user pod kojim se izvrsava PHP skript (obicno nobody) i po kome mozete slobodno pisati iz svojih PHP skriptova (i brisati i praviti podfoldere i sta god).
Posto dobih i pitanje na temu kako se radi sa BLOB poljima - isto kao i sa obicnim TEXT / VARCHAR poljima, sustinske razlike blob / text po pitanju smestanja slika nema - pogledati MySQL manual, sekcija String Types / The BLOB and TEXT Types.
Smestanje same slike u BLOB polje je poprilicno jednostavno (opet, savet je ako ne mora, da se to ne radi - performace issue) - ukoliko ocekujete da korisnik uploaduje sliku koju smestate u bazu, pogledajte prvo PHP manual, Handling file uploads (chapter 18). Tako dolazimo na sledeci korak - fajl sa slikom imamo negde na disku, smestamo sliku u neki string (pogledati PHP manual, funkcija fread - ima i primer kako se ceo fajl cita u neki bafer) i zatim SQL komandom smestamo u nasu bazu
<?php
$query = "INSERT INTO blabla SET imagedata = '$buffer'";
mysql_query($query, $conn);
?>
Za svaki slucaj bi valjalo i iskoristiti mysql_escape_string() funkciju na $buffer... ili ako zelite bas da ste sigurni - base64_encode().
<?php
$query = "INSERT INTO blabla SET imagedata = '" . mysql_escape_string($buffer) . "'";
mysql_query($query, $conn);
?>
Jasno je da se na slikama od npr. 2 MB ovako potrosi 2 MB na bafer i jos 2 MB na SQL string i da smo jako blizu da udarimo u memorijsko ogranicenje PHP skripta koje je obicno ograniceno na 8 MB (i ne zaboravite da sam PHP engine moze da uzme i pola od toga za svoje potrebe ukoliko pravite ne-jednostavne skriptove), te samim tim ovaj pristup nikako nije pogodan za ovaj slucaj...
Sto se zagusenja tice - pre bih rekao opterecenje, a i zasto biste radili posao web (Apache) servera...
I jos jedan tip za kraj - za ispis ovako smestenih slika, pogledajte PHP manual - Image functions, a kod bi otprilike isao ovako...
<image src="showimage.php?id=10">
-----
<?php
$conn = mysql_connect(...);
mysql_select_db(...);
$query = "SELECT ... FROM blabla WHERE id = " . $_GET['id'];
$row = mysql_fetch_object(mysql_query($query, $conn)):
if ($row->imagedata) {
header ("Content-type: image/jpeg");
echo $row->imagedata;
}
?>
ÐаÑиÑанÑа Ñа BLOB поÑима Ñе пÑÐ¸Ñ Ð²Ð°ÑÑива Ñамо када Ñлике моÑÐ°Ñ Ð¼ÐµÐ¼Ð¾ÑиÑаÑи Ñ ÑиÑÑаÑиÑи Ñ ÐºÐ¾ÑÐ¾Ñ Ð½ÐµÐ¼Ð°Ñ Ð¿ÑивилегиÑе да Ð¸Ñ ÑÐ½Ð¸Ð¼Ð°Ñ Ñ ÑолдеÑе (нпÑ. Ñ ÑкÑипÑама коÑе Ñе извÑÑаваÑÑ Ð½Ð° комеÑÑиÑалном пÑоваÑдеÑима)!
ÐоздÑав,
СиниÑа
----- Original Message -----
From: "Stevan Koprivica" <<mailto:ctebah@sezampro.yu>ctebah@sezampro.yu>
To: <<mailto:ri4st@titan.etf.bg.ac.yu>ri4st@titan.etf.bg.ac.yu>
Sent: Sunday, June 22, 2003 4:17 AM
Subject: Re: [ri4st] Slike u Mysql
>
> >Da li neko zna da li moze i na koji nacin se stavljaju slike u Mysql
> >(konkretno u onu bazi iz trijada koju je vecina nas koristila za projekat)
>
> u polje tipa blob (ili neko srodno mediumblob...), mada ne preporucujem
> takav pristup.
>
> Pozdrav,
> Stevan
>
> -----------------------------------------------------------------
> unsubscribe:
> <mailto:minimalist@titan.etf.bg.ac.yu?subject=unsubscribe%20ri4st>minimalist@titan.etf.bg.ac.yu?subject=unsubscribe%20ri4st
> -----------------------------------------------------------------
>
- References:
- Re: Slike u Mysql
- From: Stevan Koprivica <ctebah@sezampro.yu>
- Re: Slike u Mysql
- From: "Sinisa Rudan" <sir@galeb.etf.bg.ac.yu>
- Re: Slike u Mysql
Previous by date: Re: Slike u Mysql
Next by date: Treba mi 4-ti domaci iz ekspertskih sistema!
Previous by thread: Re: Slike u Mysql Next by thread: Treba mi 4-ti domaci iz ekspertskih sistema!
Previous by thread: Re: Slike u Mysql Next by thread: Treba mi 4-ti domaci iz ekspertskih sistema!