[MSSQL][PHP]wyświetlenie binarnie zapisanego, zdjęcia w bazie na stronie PHP |
[MSSQL][PHP]wyświetlenie binarnie zapisanego, zdjęcia w bazie na stronie PHP |
8.03.2005, 18:37:21
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 6.03.2005 Ostrzeżenie: (0%) |
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ł±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???ot Entry@9?ϑ?>?@)退PvXڸ@Ole ?CompObj?uCONTENTS??i? ދ?@)飀Microsoft Photo Editor 3.0 Pictu9?ϑ?>?@)飀Microsoft Photo Editor 3.0 PictureMSPhotoEditor MSPhotoEd.3??88Th? K?Ɂ?}z??r{vlupgqidn cbpY_mS]kR_mV_mVYfTMXGBM?DLAELEDKD@FDQUT|}}yy{ttvpprpprttvzz|}~?~|{~? ܞ݀ʂ? }?{vzqzunxplvkj 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! Ten post edytował MartinezB 8.03.2005, 18:39:19 |
|
|
8.03.2005, 23:40:46
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) |
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. -------------------- |
|
|
10.03.2005, 06:22:26
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 6.03.2005 Ostrzeżenie: (0%) |
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 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? 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 ) |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 19:22 |