ubacivanje slika u blob polje sql

1

ubacivanje slika u blob polje sql

offline
  • Pridružio: 11 Feb 2006
  • Poruke: 166
  • Gde živiš: Loznica

taman sam pomislio da nesto znam kad problem sa slikom mnogo sam googlao i slaba vajda evo mog koda koji ne radi sa blob poljem.
pozzzzz
[Link mogu videti samo ulogovani korisnici]

Dopuna: 05 Jun 2008 12:57

nesto sam uspeo ali mi prikazuje samo karaktere umesto slike. Prvo sam klreirao tablu
$d_query="CREATE TABLE `testblob` (   `id` int(11) NOT NULL auto_increment,   `image_name` varchar(100) default NULL,   `image_size` int(100) default NULL,   `image_type` longblob,   `image` text,   PRIMARY KEY  (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; echo"<br>SQL query: <br>$d_query<br>"; mysql_query($d_query); echo "<br>Pravim tabelu u bazi podataka..... OK<br>";

pa uupload

<body> <form method="post" enctype="multipart/form-data">   <input type="hidden" name="MAX_FILE_SIZE" value="2000000"> <p>   <input name="userfile" type="file" id="userfile2">   <input name="upload" type="submit" class="box" id="upload2" value=" Upload "> </p> </form> </body> </html> <?php if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0) { $fileName = $_FILES['userfile']['name']; $tmpName  = $_FILES['userfile']['tmp_name']; $fileSize = $_FILES['userfile']['size']; $fileType = $_FILES['userfile']['type']; $fp      = fopen($tmpName, 'r'); $content = fread($fp, filesize($tmpName)); $content = addslashes($content); fclose($fp); if(!get_magic_quotes_gpc()) {     $fileName = addslashes($fileName); } $link = @mysql_connect("localhost", "", "") OR DIE (mysql_error()); @mysql_select_db ("test") OR DIE ("Unable to select db".mysql_error()); $query = "INSERT INTO testblob  (image_name, image_size, image_type, image) ". "VALUES ('$fileName', '$fileSize', '$fileType', '$content')"; mysql_query($query) or die('Greska! Upit neuspesan'); echo "<br>File $fileName uploadovan!<br>"; } ?>

i prikaz
// Ispisujemo while ( $row = mysql_fetch_array($query) ) {    $id = $row["id"];    $image_type = $row["image_type"];    $image_blob = $row["image"]; echo" <table width='500' border='1' align='center'>   <tr>     <td width='500'>redni broj slike $id tip slike $image_type <br></td>   </tr>     <td width='500'><img src='$image_blob' width='200' height='200'></td>   </tr> </table>"; }
gde je greska?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • igor86  Male
  • Stručni saradnik
    Web programiranje
  • Pridružio: 24 Maj 2006
  • Poruke: 1633

Ovaj content ...src='$image_blob'... odnosno SRC ti mora biti odvojeni file kojem ces recimo proslijediti ID i koji ce ti generisati sliku.
moraces da koristis header();

Ako bude problema javi.



offline
  • Pridružio: 11 Feb 2006
  • Poruke: 166
  • Gde živiš: Loznica

// Ispisujemo while ( $row = mysql_fetch_array($query) ) {    $id = $row["id"];    $image = $row["image"];    $image_blob = $row["image_blob"]; echo" Redni broj $id <br>"; echo" Ime slike $image<br>"; /////echo" SLIKA $image_blob <br>"; header('Refresh: 0; url=prikaz1.php?id=1');

heder output started inffo........????'''

ajd pomozi

offline
  • igor86  Male
  • Stručni saradnik
    Web programiranje
  • Pridružio: 24 Maj 2006
  • Poruke: 1633

// Ispisujemo while ( $row = mysql_fetch_array($query) ) {    $id = $row["id"];    $image_type = $row["image_type"];    $image_blob = $row["image"]; echo" <table width='500' border='1' align='center'>   <tr>     <td width='500'>redni broj slike $id tip slike $image_type <br></td>   </tr>     <td width='500'><img src='slika.php?id={$id}' width='200' height='200'></td>   </tr> </table>"; }

a file slika.php bi ti izgledala ovako

<?php $ID = (int) $_GET['id']; $link = @mysql_connect("localhost", "", "") OR DIE (mysql_error()); list( $ImageName, $ImageContent ) = @mysql_fetch_row(                         @mysql_query( "SELECT image_name, image  FROM test.testblob WHERE id={$ID} LIMIT 1", $link )); $Parts = explode('.', $ImageName ); $Extenzija = $Parts[ (count($Parts)-1) ]; header("Content-Type: image/{$Extenzija}"); print $ImageContent; ?>

Mislim da ti je sad jasnije sta sam htio reci.
Inace ovo nije dobar nacin za cuvanje slika. Kada je uploadujes, kopiras je u neki folder a u bazi samo cuvas putanju do nje.

offline
  • Pridružio: 11 Feb 2006
  • Poruke: 166
  • Gde živiš: Loznica

sadami tvoj kod prikaze mesto za sliku i crveni krstic.
imas li neki dobar link?
ja radim sa php 4.39

Dopuna: 09 Jun 2008 13:11

mozda mi nije dobro konfigurisana baza a mozda nisam dobro ni upisao

offline
  • igor86  Male
  • Stručni saradnik
    Web programiranje
  • Pridružio: 24 Maj 2006
  • Poruke: 1633

Brate ne treba ti link, ali sledeci put pokusaj sam. Prvo pogledaj query za kreiranje baze

`image_type` longblob, `image` text,

Mislim da si zamislio da ti image bude longblob?

Kada to ispravis, slika.php mozes ostaviti, a mozes staviti i ovu bolju verziju, posto nisam primjetio da cuvas image_type.

Znaci:

<?php $ID = (int) $_GET['id']; $link = @mysql_connect("localhost", "", "") OR DIE (mysql_error()); list( $ImageType, $ImageContent ) = @mysql_fetch_row(                                        @mysql_query( "SELECT image_type, image  FROM test.testblob WHERE id={$ID} LIMIT 1", $link )); header("Content-Type: {$ImageType}"); print $ImageContent; ?>

I ovo ima da leti Wink

offline
  • Pridružio: 11 Feb 2006
  • Poruke: 166
  • Gde živiš: Loznica

uradio sam ponovo i isto evo ovako create:<? $dbhostname = "localhost";            $dbusername = "";                  $dbpassword = "";                    $database = "test"; $tabla = "testblob";     mysql_connect ($dbhostname , $dbusername , $dbpassword) or die("nema veze sa MySQL");    mysql_query(" CREATE DATABASE " .$database ) or die("ne mogu da kreiram bazu $database ili ona postoji"); $dbname = mysql_select_db ($database) or die ("ne mogu selektovati bazu $database "); echo "selektovana baza $database "; $d_query="CREATE TABLE `testblob` (   `id` int(11) NOT NULL auto_increment,   `image_name` varchar(100) default NULL,   `image_size` int(100) default NULL,   `image_type` int(100) default NULL,   `image` longblob,   PRIMARY KEY  (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; echo"<br>SQL query: <br>$d_query<br>"; mysql_query($d_query); echo "<br>Pravim tabelu u bazi podataka..... OK<br>"; ?>
uppload:
<form method="post" enctype="multipart/form-data">   <input type="hidden" name="MAX_FILE_SIZE" value="2000000"> <p>   <input name="userfile" type="file" id="userfile2">   <input name="upload" type="submit" class="box" id="upload2" value=" Upload "> </p> </form> </body> </html> <?php if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0) { $fileName = $_FILES['userfile']['name']; $tmpName  = $_FILES['userfile']['tmp_name']; $fileSize = $_FILES['userfile']['size']; $fileType = $_FILES['userfile']['type']; echo"fileName --- $fileName<br>"; echo"tmpName --- $tmpName<br>"; echo"fileSize --- $fileSize<br>"; echo"fleType --- $fileType<br>"; $fp      = fopen($tmpName, 'r'); $content = fread($fp, filesize($tmpName)); $content = addslashes($content); fclose($fp); if(!get_magic_quotes_gpc()) {     $fileName = addslashes($fileName); } $link = @mysql_connect("localhost", "", "") OR DIE (mysql_error()); @mysql_select_db ("test") OR DIE ("Unable to select db".mysql_error()); $query = "INSERT INTO testblob  (image_name, image_size, image_type, image) ". "VALUES ('$fileName', '$fileSize', '$fileType', '$content')"; mysql_query($query) or die('Greska! Upit neuspesan'); echo "<br>File $fileName uploadovan!<br>"; } ?>
prikaz:
// Ispisujemo while ( $row = mysql_fetch_array($query) ) {    $id = $row["id"];    $image = $row["image"];    $image_type = $row["image_type"]; echo" <table width='500' border='1' align='center'>   <tr>     <td width='500'>redni broj slike $id <br></td>   </tr>     <td width='500'><img src='slika.php?id=($id}' width='200' height='200'></td>   </tr> </table>"; }
slika:
$ID = (int) $_GET['id']; $link = @mysql_connect("localhost", "", "") OR DIE (mysql_error());    list( $ImageType, $ImageContent ) = @mysql_fetch_row(    @mysql_query( "SELECT image_type, image  FROM test.testblob WHERE id={$ID} LIMIT 1", $link ));    header("Content-Type: {image/$ImageType}"); print $ImageContent;
prikaze mi mesto za sliku i crveni krstic, a kad citam sliku ovako

    <td width='500'><img src='$image' width='200' height='200'></td> onda prikaze samo karaktere, mozda je grreska u poljima baze

offline
  • igor86  Male
  • Stručni saradnik
    Web programiranje
  • Pridružio: 24 Maj 2006
  • Poruke: 1633

Uh brate nista ti ovo ne kontas.

Vidi ovo ti je gore gotovo rjesenje, meni radilo.

Kazes

Citat:mozda je grreska u poljima baze

Pa imas 5-6 polja i kazes mozda je greska, pa za 1,4 sekundi to skontas da li je greska.

Sto ti je image_type int, treba valjda varchar, ovo mi sve izgleda kao da hoces da se zajeb... ?

I dalje, sa cim gledas da li ti je baza - tabela kreirana?
Budi siguran za bazu, a za ostalo se ne brini. Wink

offline
  • Pridružio: 11 Feb 2006
  • Poruke: 166
  • Gde živiš: Loznica

nije mi do sale u tome i jeste fazon kako da definisem koje polje za sliku do sada sam radio samo sa tekstom ,ovo je moj rad
[Link mogu videti samo ulogovani korisnici]

Bazu i table gledam total komanderom i koji alat preporucujes

offline
  • igor86  Male
  • Stručni saradnik
    Web programiranje
  • Pridružio: 24 Maj 2006
  • Poruke: 1633

Ja vec par godina koristim Navicat for MySQl, ali ako ti nije do placanja skini Mysql Front,

Ko je trenutno na forumu
 

Ukupno su 1554 korisnika na forumu :: 67 registrovanih, 11 sakrivenih i 1476 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 20624 - dana 04 Apr 2026 04:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Asteker, Automaticar, Bbbggg1979, Betty25, Crazzer, Dambi, Darko Jovanovic, DavidA, DeerHunter, deLacy, Denaya, dragoljub11987, drale12, dule10savic, DziadekDzidek, FOX, gorankuba, jaeger, jalos, Jelly4183, JOntra, klepesina, lacko, Luka85, M74AB3, Makarid, Maruti, milenko crazy north, nebojsag, nemkea71, NiKoLa27, pablojepao, pceklic, pein, precan, procesor, RJ, Rogan33, ruma, S-lash, SamoGledam, sedan, sony771, Sr.Stat., Srpska zauvjek, stegonosa, Stoilkovic, Tanjagre, Tas011, Tila Painen, tomigun, tomo2, troki1971, trutcina, Ugljesa99, Username1000, V-98, Vanderx, VanZan, VBoss, vespa nikola, VOŽD, Vucko11, vzd1389, zgoljo, zivojin32, ZlatniRez