Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MSSQL][PHP]wyświetlenie binarnie zapisanego
Forum PHP.pl > Forum > Bazy danych > Microsoft SQL Server / MSDE
MartinezB
Zrobioną mam baze danych w MSSQL
zdjęcia są umieszczone w bazie danych w polu
ZDJ typ IMAGE
ZDJ zawiera obiekt binarny

Kod
<?php

$uzytkownik = "zdjecia";
$haslo = "zdjecia";
$db = "zdjecia";
$ip = "127.0.0.1";
$link = mssql_connect($ip, $uzytkownik, $haslo);
if (! $link)
die ( "nie moge się poł&plusmn;czyć z serwerem");
mssql_select_db($db, $link);

//zapytanie SQL
$zapytanie = mssql_query("SELECT * FROM ZDJECIA WHERE MATCLE='POL0000123'");

//formatowanie wyników
echo "<TABLE>";
while ($row = mssql_fetch_array($zapytanie))
{
echo "<TR><td><img src=\"$row[ZDJ]\"></td></TR>";
}
echo "</TABLE>";

//zwolnienie zasobów i zamknięcie połączenia
mssql_free_result($sql_result);
mssql_close($connection);
?>


W jaki sposób mogę wyświetlić binarnie zapisane w bazie zdjęcie.
Bo po wpisaniu normalnie jak w kodzie powyżej na ekranie mam poniższy kod:

Kod
?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno?questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif??ot Entryquestionmark.gif@9?޶ϑ?>?@)退PvXڸ򂁃@Ole questionmark.gif?CompObj?uCONTENTSquestionmark.gif??i?questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif
questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif
questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif ދ?@)飀Microsoft Photo Editor 3.0 Pictuquestionmark.gif9?޶ϑ?>?@)飀Microsoft Photo Editor 3.0 PictureMSPhotoEditor MSPhotoEd.3??88Th? K?questionmark.gifɁ?questionmark.gif}questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifz??r{vlupgqidn
cbpY_mS]kR_mV_mVYfTMXGBM?DLAELEDKD@FDQUT|questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif}}yy{ttvpprpprttvzz|}~questionmark.gifquestionmark.gifquestionmark.gif?~questionmark.gif|questionmark.gif{questionmark.gif~questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif?
questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifܞ݀ʂ?
questionmark.gif}questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif?questionmark.gif{questionmark.gifvzqzunxplvkj
wcft[bpYbpYdq]`m[XcSPZO=E:


Czy jest możliwość odczytania binarnie zapisanego zdjęcia w bazie danych MSSQL i wyświetlenie tego jako grafiki na stronie php??

BEDE WDZIECZNY ZA POMOC!
SongoQ
Troszeczke zle podszedles do tematu.

Cytat
echo "<TR><td><img src=\"$row[ZDJ]\"></td></TR>";


Zastanow sie co tu napisales.

<img src="binarka"> w HTML tego tak nie zrealizujesz bo definicja TAG'a img jest <img src="sciezka do obrazka">

Wiec Twoj skrypt bedzie troche inaczej wygladal. W miejscu src="wstaw tutaj wywolanie skryptu php ktory generuje obrazek"

2 dni temu na tym forum napisałem sposób wyświetlania obrazków z bazy, poszukaj sobie. Wazne jest to aby wyslac naglowek ze to jest grafika a dalej robisz echo odczytana binarka z bazy.
MartinezB
zacząłem kombinować i napisałem kod:

Kod
<?php
header("Content-type: image/jpg");

$uzytkownik = "zdjecia";
$haslo = "zdjecia";
$db = "zdjecia";
$link = mssql_connect("127.0.0.1", $uzytkownik, $haslo);
if (! $link)
die ( "nie moge się poł±czyć z serwerem");
mssql_select_db($db, $link);

//zapytanie SQL
$zapytanie = mssql_query("SELECT * FROM ZDJECIA WHERE MATCLE='POL0001238'");

//formatowanie wyników
while ($row = mssql_fetch_array($zapytanie))
{
$a = "$row[ZDJ]";
$b = "$row[ZDJ]";
$c = base64_encode($a);
echo "<img src=\"$c\">";' <- z base64<br/>';
$d = base64_decode($b);
echo "<img src=\"$d\">"; '<- odkodowane base64<br/>';
}

//zwolnienie zasobów i zamknięcie połączenia
mssql_free_result($sql_result);
mssql_close($connection);
?>


Niestety nie wyświetla zdjęcia sad.gif

Potem napisałem:


Kod
<?php
header("Content-type: image/jpeg;");

$uzytkownik = "zdjecia";
$haslo = "zdjecia";
$db = "zdjecia";
$link = mssql_connect("127.0.0.1", $uzytkownik, $haslo);
if (! $link)
die ( "nie moge się poł±czyć z serwerem");
mssql_select_db($db, $link);

$filename = 'test.jpg';
if (!$handle = fopen($filename, 'w')) {
         echo "Cannot open file ($filename)";
         exit;
   }
$result = mssql_query("SELECT ZDJ FROM ZDJECIA WHERE MATCLE='POL0001238'");
$row = mssql_fetch_assoc($result);
if (fwrite($handle, $row['ZDJ']) === FALSE)
{
       echo "Cannot write to file ($filename)";
       exit;
}
fclose($handle);
echo "<TABLE>";
echo "<TR><td><img src=\"$filename\"></td></TR>";
echo "</TABLE>";

//zwolnienie zasobów i zamknięcie połączenia
mssql_free_result($sql_result);
mssql_close($connection);
?>


Pole MATCLE to pole zawierający nazwe pracownika.
No i niestety nie wyświetla mi się zdjęcie poprawnie.

już nie wiem jak można odczytać binarnie zapisany plik w bazie danych.
Typ pola w bazie danych to IMAGE, ale obiekt binarny.
W innej bazie danych ORALCE, która korzysta też z tej bazy danych zdjecia pobierają sie poprawnie. W MS Access po wstawieniu obiektu OLE pobierającego dane tez z tej bazy MSSQL - zdjęcie wyświetla sie poprawnie.
W php nie wiem jak to zrobic?questionmark.gif
Jest coś z obiektami OLE w php??
moze kiedyś się ktoś z tym spotkał lub ma jakiś pomysł.
Czy do php trzeba dogrywać jakieś biblioteki do obsługi grafiki??
Będę wdzięczny pomoc smile.gif)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.