Autor Wątek: wyświetlanie pola zd_Zdjecie w PHP  (Przeczytany 3308 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline misiekck

  • Nowy użytkownik
  • *
  • Wiadomości: 4
  • Reputacja +0/-0
  • Wersja programu: 1.58
wyświetlanie pola zd_Zdjecie w PHP
« dnia: Grudzień 17, 2019, 12:48:10 »
Witam wszystkich.
Mam problem z wyświetleniem pola zd_Zdjecie z tabeli tw_ZdjecieTw. Mianowicie wyciągam SQL poprawnie pole jednak z tego co doczytałem jest ono w formie Binarnej i teraz pojawia się problem jak go wyświetlić jako normlany obrazek.

próbowałem już wynik zapytania SELECT zd_Zdjecie FROM tw_ZdjecieTw WHERE zd_IdTowar='XXX' przemielić do base64 za pomocą
$imageResult = $response['zd_Zdjecie'];
$imageData = base64_encode($imageResult);
a następnie wyświetlić za pomocą
header('Content-type: image/jpeg');
imagejpeg($imageData);
jednakże otrzumuję informację o uszkodzonym pliku.

próba wyświetlenia za pomocą <IMG src="data:image/jpeg; base64, '.$imageData .'" /> także nie przynosi rezultatu.

Moje pytanie brzmi jak wy parsujecie wyciągnięte dane aby uzyskać prawidłowy obraz?


Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17059
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: wyświetlanie pola zd_Zdjecie w PHP
« Odpowiedź #1 dnia: Grudzień 17, 2019, 14:52:16 »
Ech, przecież praktycznie wszystkie formaty graficzne są formatami binarnymi, więc niczego z tymi danymi więcej nie robisz, po prostu je wyświetlasz/zapisujesz do pliku.
Daniel, Białystok.

Offline misiekck

  • Nowy użytkownik
  • *
  • Wiadomości: 4
  • Reputacja +0/-0
  • Wersja programu: 1.58
Odp: wyświetlanie pola zd_Zdjecie w PHP
« Odpowiedź #2 dnia: Grudzień 17, 2019, 19:30:21 »
w teorii powinno być jak piszesz jednakże wyświetlanie nawet bez traktowania danych base64 powoduje komunikat o uszkodzonym pliku. dlatego pytam wam jak to rozwiązujecie? jakiś przykład mile widziany

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17059
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: wyświetlanie pola zd_Zdjecie w PHP
« Odpowiedź #3 dnia: Grudzień 17, 2019, 20:00:39 »
Z tego ci piszesz wynika, że popełniasz jakiś błąd przy wyświetlaniu zdjęcia cokolwiek to znaczy... Przykład kodu, który pobiera i zapisuje zdjęcie na dysku, działa tak jak opisywałem, nie w teorii tylko w praktyce:

Cytuj
byte[] zdjecie = (byte[])cmd_tw_ZdjecieTwSelId.ExecuteScalar();

using (FileStream fileStream = new FileStream(saveFileDialog.FileName, FileMode.Create))
{
    fileStream.Write(zdjecie, 0, zdjecie.Length);
}

Zapomnij o programach Insertu, wczytaj plik z dysku jako tablicę bajtów i spróbuj ją wyświetlić, jeśli Ci się uda to wyświetlisz też zdjęcie z bazy danych programów Insertu.
Daniel, Białystok.

Offline misiekck

  • Nowy użytkownik
  • *
  • Wiadomości: 4
  • Reputacja +0/-0
  • Wersja programu: 1.58
Odp: wyświetlanie pola zd_Zdjecie w PHP
« Odpowiedź #4 dnia: Grudzień 18, 2019, 11:14:56 »
wczytanie pliku z dysku i wyświetlenie go nie jest problemem stad dziwie się ze po wybraniu rekordu z bazy który niby jest binarny problem występuje.
być może przyczyna dotyczy tego iż pobieram dane z bazy subiekta jako format JSON.
zanim użyje funkcji json_decode dane prezentują się następująco

"zd_Zdjecie": "˙Ř˙ŕ\u0000\u0010JFIF\u0000\u0001\u0001\u0001\u0000H\u0000H\u0000\u0000˙Ű\u0000C\u0000\b\u0006\u0006\u0007\u0006\u0005\b\u0007\u0007\u0007\t\t\b\n\f\u0014\r\f\u000b\u000b\f\u0019\u0012\u0013\u000f\u0014\u001d\u001a\u001f\u001e\u001d\u001a\u001c\u001c $.' \",#\u001c\u001c(7),01444\u001f'9=82<.342˙Ű\u0000C\u0001\t\t\t\f\u000b\f\u0018\r\r\u00182!
natomiast po wywołaniu json_decode mam już
˙Ř˙ŕJFIFHH˙ŰC    $.' ",#(7),01444'9=82<.342˙ŰC  2!!22222222222222222222222222222222222222222222222222˙Ŕ"˙Ä˙Ä@!1AQa"q2R‘#BĄąÁ3b’ŃáCr‚$đ4sƒ˛ń˙Ä˙Ä4!1A"Qaq‘ĄđŃ2BRąÁá#$3Sń˙Ú ?đ°€–ÉQ°<‘Ö\ąr’N\ą-Šă„\Ś3Ş0Đಋ %gT拋‚ě´Ŕ–Ŕ$Ěť^ŠI é.ą(i+‹`D ś F֋Ž,Ł‘Ą)Á tĄ@UZD†IW`*ŠˆˁR] dŤ‚[v\Xä .Hŕˆ5e“ŞĘ!TAkS .kJ“9:şčąˆd°6ƉіîŚ,Đď;W8”UɘEÉN뀺Dó"% %YՁN $b+ť˘K¸ł…č2žčƒWÉ×%(j0ÄaŠK(€ČËśˇtĄŠĐÂŚDTQ Fž„že%Ôlˆ '„HŰUĹÔŔ“Ą–I–Ë‚(ŕ.şÉŔ۝Q9­Ř.,ÍŠPĺN2"ó`¸˛ˆĐhF6˛yđÁžý’TຈmÓĚgDQÄJ›9$ '`‹dŤ‹(ś4ŘŃäśčˀŮr‚ř@ ŁlděˆŠÉÖħŰŘ (r Ů°Ą˛ŹÉ›Dó)Ď5%°¸‹j‡)ŚWRô {'<vX6ź¨Ů8Ř..5B˝!ˆéŰ+E9č‹ŮŐźłž‹˝Ý ź‡Ž”ŹđWU‰€ó ›×{Áv+|Ţ VíŁş‘^tiT–­#˝Ř đM×x+RĚgěÂnˆđä­gÄLČo_Rž”đ‘˛ĐɁHÍś×zjŁ?|~üno{hŻ \_FO‚SąŽ'[˘djÄŃź^éčh\i$čTýo'ÂŔÍ%ç~V6çrvą*Äľ”ě1ëΎ“şZÔÓ3Ł†‘–Îŕ3‡Ţ==LÇ+K–„RH2‡•?R+Üśę î$Ý΁=,„¨R…9äšě4÷ÜétÝҸĄ@rŮ×E¸Ey‘X¨Ë*˛gË<ÉÖ1ŹĎŮŔĐ(ɐŁŽ§ 5!$¤Ý5\XVłŞ‘EÄtK %ڕ:(ą9KëŤ$Č_O Ł)Ů÷ŘtM2ç^ŰŠÓ .‹ áśN´5ŃQ˝ąźő%ň7ńţÉ ľ0ŠełKnäˇp‘C!č­(0éę¤m-58’itŇÝďČwZx¸.ž1wžžýďřŮX`ôżşk\'hcÜÜąą[ű,Ť}¤š~Ë‚ŚbÜY[>†đő4BZvb˜ŹÂílˇđ"_˝Đ_~ÁAýŐ=\ž-[ÚynŔ ‚ÔăHéRÖćcˆÖÖý5PŠš ĹĘJÍÇsyź@ÔF;7žYź‡čX~wţLn„żCӐ*Ö(`su~˝ÉD\ďł˝ş”|ŰęÁ;SxÎ é¸c ŤŹ%8lRŰK˙ĘÍWđľUL‚HĆîfśőčśÍ Š`Ěí9Qą’xáć7$‰ëč‰^ŚČty@Őî/ŽQ„˘Â%źPŰŞÓŮŕ¤f]ńÉżŠWóÓÇQź2#Ţ Úę Ń˝˛e°ş+ąŘů Túđ@”M5š/ŽÍjháěŹY '›AýU׆Čaćîz(rĆóÉZ3}‰RÉĹ,6cCZ˘o–ŮĂŽ Ąu;÷ %#)ݚůJ*Ă9¸‘%¤ŽBIŚ1üŔŘŠT4Š9jHo•ž§š|ĆöRkŕá1€7%ËŃű>8†HÎp˝Jl^âŞÝV#B֍KnUŢ,ÜÓ˛PY#PŤ1;šjiX7nSę´g6ĄÁysQş˜ŰRaôN;9§ćŚźťÜÖú”c/âýuź+gęĹ2ąôr7p˜19§b­łD?ŐwôŽË ţůţ”5{]Aş˛U´ŰDBîÝY~ďdžëR"ÂäpńD÷˜“ŚÍ˘Bz şäÁçňą6RĄŽé¨YsŞ°‰Š˛–U ň; g@ΆKW3b†7=ǓEʕÂü;>;[á°řpGc4¤_(<‡RWĄĹSƒŕ{- ˇGxvsÜ{•…Żö‡†ü:Öeý*Ł‡„˛ĘL;„çŚ`’GEů¸}‰áŁ)Îk¤‘ÝEÉüJ#ŹMQ&Zz6\íšďwĐX)QśfCgË\ň‹ýýV ěą˝Ňi1źŰÚ?Oö1&-‡:ŃM<ńü&ÎoĐę¤>˘ ÖxUPI^Í>ŠčŠą ­j‹÷ úuSĹ&)a­1˙x'ňA•‹9xĎĐ íŠy“Yő\´~ŮNZĆNĆű¤<~ĄYFLŹĘújv“÷‰a'䈰Ś×}Dt—ąŢ˙ÎęąŘí3Ť˙w`ŚeTŔfž¤Ś°@Ëęt÷Ź çš|Vö/Ô^vŤزű˛Ń´‘ßĚţVśß’)p7_(čşQÖKšÇsÓńTŐURxLąB$‹ÚâĺVr`넬}Gę+ăĚCŔ~'{ęž×şHśŇ,@;¨3ľî75 Š6 3§§ŚošGJţś°OB¤ş*!Ç%‘ßkÎOÄvMĚŕńqfÉÓ¨T’cŽ‰ÄÄńnl˜~8Ůycř™ĄŃ㧟Ąo ˘|Ó:庡˛,Ä.v+O ó}FżTĕteşIŻBŹÚě2Çc˝¤ƒpHîŠŮ™ŽŤf­§éżŕŁşť6‚Ŕt Şčoąfâú—Ź˜˝Âćęçeča˛‘‚ŤşŮ8ŠŚ"žAŻ‘z=,6ĂgË*%‰’Ó†‚s ŻČŞŠ‡8Ĺ%;šüÍěŕ­ŚD–&V7-Ă'éäQŁş„k ž†Jymn†)Ŕ6;)˜Ą˘p´ŚŢđ<ˆÜ*Ł`PK ťxe ‚7‹‡´"DÝŢgˆ@Đ 3:ű”śôňo†YOK‘Q>~:¨äÝâꉕg'ƒZńv›OwÇPŠiô2jM(‹,†MMźŞ5ˆNF.Sď”yx<<’ŕj´¤ÓJČŘs‚Ů[Ń´ˇĚ×KТ&Ę,Q”á8^o˙i3ttď;‘Đ~Šm,Ď ¸ˇ ôęT, ~VĘöŢithřZś´”ě‚0ÖňçŐy]Uą­ľ˝ŮŞąL3ݎŃQEMXdžŢd{îő<žJ!ÄTT$ĂOăp ˜ˆŚ8ƒt1{,.!ÄyČĺŮQá84Ř­A䅚É'NŢŠzhŚ—‹sŕkĘń,';Śń'?ěÄmo@ÝţiŃĆř„-Ց¸žnÝMŽ.…Ţ ,~+ö/#5ţgôXźB¨TVĎ!ľ‹Íť €ZŃEáÎŹ'Ó?ˇRľĘ‹›QŠăŕNŸ—ĆGłÉ!đś@C yčz­ž ‡E‚`ŢÎ2š‡=ŻŠxć˙‡Ńť}WźSřŘN#KS4%ŽmĄk˝şŰŻ;-Ý4Κ™ććÁˇ#×_­Š_[FŹGáܛĄĺQŹ=@ŚÄÜ÷˙F†8ôŹŐ }IJ徇üŹ!`‘ž!vKŚŮwˇ;wZL2¨RՉ`͐;@ďxˇĄďdýpÄp†qž;KššSg6Ű*9šćIqŁ‚Ű1ąÖÂŮYmFęŹĂśÇxnśŐ—ÄšmRňžĄ^!J1,!Ň°}ŤnćۃňXIZňŁaMts‘v¸\Žác¸†ƒŘ1I˘áó4ö:ŞIšŰ' n(śl›% Äb‚ŠbÇvQî¸WđB–4ÍöĘm—őUŃ S’Uąđx@›Hä‚-ĐbšÎL™Ę2kieLې´˜E(¨Ş†#|¤ÝރUź˘mÜχŁ˙¸‘ß vú•­łl^ ]74l°¸ĹÝ!ţë{+ydSžO…ˇUŘx&wŐ)P<@ۗnű}ŃßşňSNv`jŞ܊ŮL’˝î$ó$îśqQ7áę8tdľ9ýNmmôXąă.c­ąz&0ÇOĂŘuu=ś"cmČXkňZşu jčŽÂĺ˙ϸŻľç(Rś÷ÉyK†SáÔ/e< 2–ĆÚźŰbWPđU üKsl~vÓvąŁŠćŞôÇťKţż=pZÂ÷CXřÝĚĺőUxÜFžó0yo—57“ĂŤc‡2 ]Ž4I…Ë—Ě$ëxś_ŠĐm8ËÔŹÔś˘fR˝Ŕ¸ўĂvţŤÍkŚ Şś0Ř ^ősI‹;”TƒwÇrß[,śň’âIą:“Ýz ™ĆÉKłÇů)cÚŰ]Á–bNĄFsÉH÷]ĄnB”˛Ç#Ă[kžş. °ś`$Ř#Ć$.G¤ÇóL–şĹI`Ń1‡˜śľ$§3@UUĆ’Vé LDfźäŘŕŐ&srĂ`Gęľ&Š:ČKlpňž…e ŹÁ‰€îu˛Ńŕs¸ÜJŁç,Ž/$z™ˇÓšJě„[RgâűJIţ8ˆ?"˝ ‰)2ĚٛĄ$ˆă†ÚŇvĎú!őd)řŞ3<ýéˇ%yŐ6¨ÁIŠ¸!¸ łTÉRˆ”p¤E¸Kł"KśçnKQgI`‡ćžŽ7Hë Łľu‘Jűe4ť6ńôŁŮtÓ<őa1ą¤kF‚ëW‚Ä ¤sÁ‘ÁÚü<•V†xŽ”ĂĎŤťz+ŮglW•ÂÍk9vŰű%ľ6ďňD5Üů{•˜őXŠG¸ÚŃ4_Ő9U5ś2ůÉŃĚmťÜ,ĎUÓdsŽ÷Ýîô˙őâ~†á@ý¤tě–ĺ$ üľGŤJäëK×ěŠŰˆmŹĄ”¨ś.U|ŽąG#îW Y Ś w†Ň_m<ŻŐzş ˘„ŚÜşôÍŞ°§§mlŚ†ľŚÚ’w=UcźŚÉČj]ŹĐŚqÇĄ$ž$JŽŁuž€ľűŘîŁFNmK<ľ2ĘňçdÝKĄ¤|ŚäY˝Qař–éyPą´“rĄ1…?00Tę|9ä‚BeGqŠ‘銋Ü4Zü"ąGâÉ`ĆęOT8V Mść›-î™ęÖeË wîŁ9xA7F<7‚,dĘ]3˝Ýš­¨ZčĺĆáÎ7Ećź´Ů°IłVéÉî Ë#4Ôz¸ÔmŠĂĂƤs^kĆGĎ0>ă^‘śÉI4fţUçT3f[–ô‹ ÇĐó§SN:'$6q ˘¨ĘI‚T‰.ŞS%`R#Ü(ătűĚˁoBű8-^ (msý斬e+ěđ´s˜ÜÉťMÖ^Ž“F֊Ě`ôL6@Éň“Ł•Ó/ńöĘŢÁe`˜=Ś•‡B3˘†`úv¸ż˘óĂśš:¨sąw"â´ćP$Ś]üŔéŐgÜŰy†˝ąŚ÷;§ Q%ĄĄńKüćˇÔŽŞÍŤ¨żbÚĚäÎIk Ő^ŇaqŇČÇHDŽéČu FC#hk
nie wiem czy to prawidłowa reakacja ale nie przynosi żądnen sposób rezultatu.
ani zakodowanie stringu do base64
ani wyświetlenie bezpośrednio headerem tego ciągu znaków
ciągle mam info że obraz zawiera błędy

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17059
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: wyświetlanie pola zd_Zdjecie w PHP
« Odpowiedź #5 dnia: Grudzień 18, 2019, 11:19:56 »
To problem znajomości języka/środowiska PHP, którego nie znam, więcej nie pomogę.
Daniel, Białystok.

Forum Użytkownikow Subiekt GT

Odp: wyświetlanie pola zd_Zdjecie w PHP
« Odpowiedź #5 dnia: Grudzień 18, 2019, 11:19:56 »