ugrás a tartalomhoz

Kép beszúrása, kiolvasása MSSQL-ből PHP-val

Anonymous · 2006. Jún. 26. (H), 17.29
Sziasztok!

Egy "image" tipusú mezőbe szeretnék MS SQL 2000 adatbázisban képeket beszúrni, illetve kiolvasni.
Leegyszerűsítve eddig így próbálkoztam:
  1. <?php  
  2.   
  3. $db=mssql_connect(dbname,servername,pass);  
  4. $datastring = file_get_contents("1.JPG");  
  5. $data = unpack("H*hex"$datastring);  
  6. mssql_query("insert into kep(kep) values (0x".$data['hex'].")");  
  7.   
  8. $eredm=mssql_query("Select @@IDENTITY as id");  
  9.   
  10. $id=mssql_result($eredm,0,"id");  
  11.   
  12. $result = mssql_query("select kep from kep where kepid=$id");  
  13. $row = mssql_fetch_row($result);  
  14. header("Content-type:image/jpeg;");  
  15. $data = substr($row[0],78);  
  16. echo $data;  
  17.   
  18. ?>  
Ilyenkor a kimeneten csak az oldal elérési útvonala lesz láthátható, pedig a forrásban valami kriksz-krakszok vannnak, ami akár még a kép is lehet...
Ha ezt a fajta kiolvasást a Northwind adatbázisban tárolt adatokra alkalmazom, akkor kirakja szépen a képet, szóval valszeg az inserttel lesz a gond.

Van valakinek valamilyen ötlete?

aki
 
1

re: Kép beszúrása, kiolvasása MSSQL-ből PHP-val

Anonymous · 2006. Jún. 26. (H), 19.48
  1. <?php  
  2.   
  3.   
  4. mssql_connect('BAUSZ-1''ret''131313');  
  5.   
  6. $datastring = file_get_contents("1.bmp"); //beolvassuk a fájl tartlamát  
  7. $data = unpack("H*hex"$datastring);  // hexába kell konvertálni az mssql miatt  
  8. $correctdata = substr($data['hex'],0,strlen($data['hex'])-1); // az unpack  
  9. // egy felesleges 0-t fűz a hexa kód végére, ezt kell lecsípni  
  10.   
  11.   
  12. mssql_query("insert into kep (kep) values (0x".$correctdata.")");  
  13.   
  14. $eredm=mssql_query("Select @@IDENTITY as id");  
  15.   
  16. $id=mssql_result($eredm,0,"id");  
  17.   
  18. $result = mssql_query("select kep from kep where kepid=$id");  
  19. $row = mssql_fetch_assoc($result);  
  20. header("Content-type: image/jpeg;");  
  21. echo $row['kep'];  
  22.   
  23. ?>