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
mycity.rs/must-login.png

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
refillpen.com/bkoglasi/prikaz.php?strana=1

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 530 korisnika na forumu :: 7 registrovanih, 2 sakrivenih i 521 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: bato, magna86, nik8282, Snorks, Srki94, Tas011, yufighter