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

  1. $d_query="CREATE TABLE `testblob` (
  2.   `id` int(11) NOT NULL auto_increment,
  3.   `image_name` varchar(100) default NULL,
  4.   `image_size` int(100) default NULL,
  5.   `image_type` longblob,
  6.   `image` text,
  7.   PRIMARY KEY  (`id`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci";
  9.  
  10. echo"<br>SQL query: <br>$d_query<br>";
  11. mysql_query($d_query);
  12. echo "<br>Pravim tabelu u bazi podataka..... OK<br>";


pa uupload

  1. <body>
  2. <form method="post" enctype="multipart/form-data">
  3. <input type="hidden" name="MAX_FILE_SIZE" value="2000000">
  4. <p>
  5. <input name="userfile" type="file" id="userfile2">
  6. <input name="upload" type="submit" class="box" id="upload2" value=" Upload ">
  7. </p>
  8. </form>
  9. </body>
  10. </html>
  11. <?php
  12. if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
  13. {
  14. $fileName = $_FILES['userfile']['name'];
  15. $tmpName  = $_FILES['userfile']['tmp_name'];
  16. $fileSize = $_FILES['userfile']['size'];
  17. $fileType = $_FILES['userfile']['type'];
  18. $fp      = fopen($tmpName, 'r');
  19. $content = fread($fp, filesize($tmpName));
  20. $content = addslashes($content);
  21. fclose($fp);
  22. if(!get_magic_quotes_gpc())
  23. {
  24.   $fileName = addslashes($fileName);
  25. }
  26. $link = @mysql_connect("localhost", "", "") OR DIE (mysql_error());
  27. @mysql_select_db ("test") OR DIE ("Unable to select db".mysql_error());
  28. $query = "INSERT INTO testblob  (image_name, image_size, image_type, image) ".
  29. "VALUES ('$fileName', '$fileSize', '$fileType', '$content')";
  30. mysql_query($query) or die('Greska! Upit neuspesan');
  31. echo "<br>File $fileName uploadovan!<br>";
  32. }
  33. ?>


i prikaz
  1. // Ispisujemo
  2. while ( $row = mysql_fetch_array($query) ) {
  3.    $id = $row["id"];
  4.    $image_type = $row["image_type"];
  5.    $image_blob = $row["image"];
  6. echo"
  7. <table width='500' border='1' align='center'>
  8.   <tr>
  9.     <td width='500'>redni broj slike $id tip slike $image_type <br></td>
  10.   </tr>
  11.     <td width='500'><img src='$image_blob' width='200' height='200'></td>
  12.   </tr>
  13. </table>";
  14. }

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

  1. // Ispisujemo
  2. while ( $row = mysql_fetch_array($query) ) {
  3.    $id = $row["id"];
  4.    $image = $row["image"];
  5.    $image_blob = $row["image_blob"];
  6.  
  7. echo" Redni broj $id <br>";
  8. echo" Ime slike $image<br>";
  9.  
  10. /////echo" SLIKA $image_blob <br>";
  11. 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

  1. // Ispisujemo
  2. while ( $row = mysql_fetch_array($query) ) {
  3.    $id = $row["id"];
  4.    $image_type = $row["image_type"];
  5.    $image_blob = $row["image"];
  6. echo"
  7. <table width='500' border='1' align='center'>
  8.   <tr>
  9.     <td width='500'>redni broj slike $id tip slike $image_type <br></td>
  10.   </tr>
  11.     <td width='500'><img src='slika.php?id={$id}' width='200' height='200'></td>
  12.   </tr>
  13. </table>";
  14. }


a file slika.php bi ti izgledala ovako

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


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

  1. `image_type` longblob,
  2. `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:

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


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:

  1. <?
  2. $dbhostname = "localhost";           
  3. $dbusername = "";                 
  4. $dbpassword = "";                   
  5. $database = "test";
  6. $tabla = "testblob";
  7.  
  8.     mysql_connect ($dbhostname , $dbusername , $dbpassword) or die("nema veze sa MySQL");
  9.    mysql_query(" CREATE DATABASE " .$database ) or die("ne mogu da kreiram bazu $database ili ona postoji");
  10.  
  11. $dbname =
  12. mysql_select_db ($database) or die ("ne mogu selektovati bazu $database ");
  13. echo "selektovana baza $database ";
  14.  
  15.  
  16.  
  17. $d_query="CREATE TABLE `testblob` (
  18.   `id` int(11) NOT NULL auto_increment,
  19.   `image_name` varchar(100) default NULL,
  20.   `image_size` int(100) default NULL,
  21.   `image_type` int(100) default NULL,
  22.   `image` longblob,
  23.   PRIMARY KEY  (`id`)
  24. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci";
  25.  
  26. echo"<br>SQL query: <br>$d_query<br>";
  27. mysql_query($d_query);
  28. echo "<br>Pravim tabelu u bazi podataka..... OK<br>";
  29.  
  30. ?>

uppload:
  1. <form method="post" enctype="multipart/form-data">
  2.   <input type="hidden" name="MAX_FILE_SIZE" value="2000000">
  3. <p>
  4.   <input name="userfile" type="file" id="userfile2">
  5.   <input name="upload" type="submit" class="box" id="upload2" value=" Upload ">
  6. </p>
  7. </form>
  8. </body>
  9. </html>
  10.  
  11. <?php
  12. if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
  13. {
  14. $fileName = $_FILES['userfile']['name'];
  15. $tmpName  = $_FILES['userfile']['tmp_name'];
  16. $fileSize = $_FILES['userfile']['size'];
  17. $fileType = $_FILES['userfile']['type'];
  18.  
  19. echo"fileName --- $fileName<br>";
  20. echo"tmpName --- $tmpName<br>";
  21. echo"fileSize --- $fileSize<br>";
  22. echo"fleType --- $fileType<br>";
  23.  
  24. $fp      = fopen($tmpName, 'r');
  25. $content = fread($fp, filesize($tmpName));
  26. $content = addslashes($content);
  27. fclose($fp);
  28.  
  29. if(!get_magic_quotes_gpc())
  30. {
  31.     $fileName = addslashes($fileName);
  32. }
  33.  
  34. $link = @mysql_connect("localhost", "", "") OR DIE (mysql_error());
  35. @mysql_select_db ("test") OR DIE ("Unable to select db".mysql_error());
  36.  
  37. $query = "INSERT INTO testblob  (image_name, image_size, image_type, image) ".
  38. "VALUES ('$fileName', '$fileSize', '$fileType', '$content')";
  39.  
  40. mysql_query($query) or die('Greska! Upit neuspesan');
  41. echo "<br>File $fileName uploadovan!<br>";
  42. }
  43. ?>

prikaz:
  1. // Ispisujemo
  2. while ( $row = mysql_fetch_array($query) ) {
  3.    $id = $row["id"];
  4.    $image = $row["image"];
  5.    $image_type = $row["image_type"];
  6.  
  7. echo"
  8. <table width='500' border='1' align='center'>
  9.   <tr>
  10.     <td width='500'>redni broj slike $id <br></td>
  11.   </tr>
  12.     <td width='500'><img src='slika.php?id=($id}' width='200' height='200'></td>
  13.   </tr>
  14. </table>";
  15. }

slika:
  1. $ID = (int) $_GET['id'];
  2. $link = @mysql_connect("localhost", "", "") OR DIE (mysql_error());
  3.  
  4.    list( $ImageType, $ImageContent ) = @mysql_fetch_row(
  5.    @mysql_query( "SELECT image_type, image  FROM test.testblob WHERE id={$ID} LIMIT 1", $link ));
  6.    header("Content-Type: {image/$ImageType}");
  7. print $ImageContent;

prikaze mi mesto za sliku i crveni krstic, a kad citam sliku ovako

  1. <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 984 korisnika na forumu :: 42 registrovanih, 6 sakrivenih i 936 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: amaterSRB, Avalon015, bigfoot, bojan_t, cenejac111, Centauro, cincarin, Crazzer, Czrweni, Deki Duga Devetka, dragoljub11987, esko_hz, Georgius, hyla, istina, K2, lcc, Leonov, Lieutenant, LUDI, luka35, m0nstrum_, mercedesamg, Mercury, miki kv, Milo97, Mitrast, narandzasti, neko_drugi, pacika, rebcooil, sajorg, sap, Srki94, tajvankanasta, ulogovan, vathra, vjetar, XiaomiX, Zadonbas, zlaya011, Zrcalo