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:
<?php

$db=mssql_connect(dbname,servername,pass);
$datastring = file_get_contents("1.JPG");
$data = unpack("H*hex", $datastring);
mssql_query("insert into kep(kep) values (0x".$data['hex'].")");

$eredm=mssql_query("Select @@IDENTITY as id");

$id=mssql_result($eredm,0,"id");

$result = mssql_query("select kep from kep where kepid=$id");
$row = mssql_fetch_row($result);
header("Content-type:image/jpeg;");
$data = substr($row[0],78);
echo $data;

?>
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
<?php


mssql_connect('BAUSZ-1', 'ret', '131313');

$datastring = file_get_contents("1.bmp"); //beolvassuk a fájl tartlamát
$data = unpack("H*hex", $datastring);  // hexába kell konvertálni az mssql miatt
$correctdata = substr($data['hex'],0,strlen($data['hex'])-1); // az unpack
// egy felesleges 0-t fűz a hexa kód végére, ezt kell lecsípni


mssql_query("insert into kep (kep) values (0x".$correctdata.")");

$eredm=mssql_query("Select @@IDENTITY as id");

$id=mssql_result($eredm,0,"id");

$result = mssql_query("select kep from kep where kepid=$id");
$row = mssql_fetch_assoc($result);
header("Content-type: image/jpeg;");
echo $row['kep'];

?>