Returning a BLOB image

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
Gouveia
Forum Newbie
Posts: 19
Joined: Mon Apr 27, 2009 3:55 pm
Location: Brazil

Returning a BLOB image

Post by Gouveia »

I'm trying to get an image stored on a MySQL database in a BLOB to show up on the webpage. Here's the code I got so far:

Code: Select all

<?php
    
    include 'connect.os.php';
    
    $id = $_GET["id"];
    
    $sSQL = "SELECT imagem FROM osfoto WHERE oscodigo = $id";
    $result = mysql_query($sSQL);
    $row = mysql_fetch_array($result);
    $jpg = $row["imagem"];
 
    $jpg = base64_decode($jpg);
        
    $img = imagecreatefromstring($jpg);
 
    if($img !== false){
        header('Content-Type: image/png');
        imagepng($img);
        imagedestroy($img);
    }
    else{
        echo 'Nenhuma imagem';
    }
 
    ?>
Here's my problems:

1- If I execute that code as it is here the page returns this:
"Warning: imagecreatefromstring() [function.imagecreatefromstring]: Empty string or invalid image in D:\Meus documentos\Desktop\Arquivos\EasyPHP 3.0\www\webos\thumbnail.php on line 14
Nenhuma imagem"

2-If I remove the "base64_decode" or the "imagecreatefromstring" functions (and their lines), it will return this:
"The image '<WEB PAGE PATH>' contains errors and cannot be displayed" (It is in portuguese, sorry for any faulty translation).

3- If I echo $jpg before the decoding, it will return lots, lots, LOTS of letters, numbers, symbols and weird stuff:

Code: Select all

ÿØÿà?JFIF??`?`??ÿÛ?C?    $.' ",#(7),01444'9=82<.342ÿÛ?C  2!!22222222222222222222222222222222222222222222222222ÿÀ?¹J"?ÿÄ??????????? ÿÄ?µ???}?!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ???????? ÿÄ?µ??w?!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ?????Џ”篹¬ïí{|Þ/ôá¬[tÞž½j9X¹¢h?Ï8¥$õýj€ÕmÇñ©Ï½V·fÆõÙ£•‚hÐÏZPIàd~5ž5[sÈe?;ûR~uéëE˜s"øã8£ÙªCS·#¨8÷¿ÚPxQE˜î‹y¥éÖª F8nG¡ãKöèq×õ§ÊÁɺóÜ÷ f«ØHÎxÏJzÝÃýóùS³¢nIÆiqÀãÿ?­P‹¨xÃ~”ásJz²]‰qøÒƒ´õê1<Òöë‘ëšOÄcùS…à¯z?¥Çã@ãžs@„çœÒ˜Í;†—?v -Üf 'ÒŒvÍ?˜à: ÃH=3ҁžù§`÷ïG·½0ŽzÒœž3NÀŒ`qô41 ·ëN1IÐ~y§tí@Â?.˜£éøSÉ4˜ÉÐOÇOçIƒŠ€F1Ÿ­&)\,4d}}ééžiýèã± v¾ã3ÏZ9÷§ótëAõ¦˜ ‚@4œäzûS½©0F1ùÐJž”Þß®jLPE å#Æy$ÒRœŠBLf€±1Å!ÏRxõ©vñHÃŽ(¸Xn[ê9¦°§ž¤ÃmÇÖ‹¸;My¹ókdtóH¯_•WËaé^=ªó¨Üžï[ù×E¦ô±œF:S<Ô¤SMicȱß4Á§àúQŠV*äxô¤ÅI޼PWµ ¸Î¢ ~2hÅÆÅsOaëE+X.0gÊ“Óðz)1É$Rh.!4˜êiØéÇ”Ï=¨hcoJ?Ÿ½<þ”ÿ?ëRŒÅö§àŽ)1ŒÒŒÇ4›}ÿ?Z~ßJ\{Ò½˜în™¤XÖf9õ I6ð‚fÎqÖ—íjUÎÞøëP¬±‰|À§vsT­c>ªì°|ì?ïX•ížjOô‚¨Ï–T_j@Ò¬Kc4}³& ü½iéq§ek’p‰˜ðq€j9繃¥$z_¶/—"€A&©Èí)’Hìh²²uÔn:y­Éçæ§Jç?ë8ìj¡Sº€:sžÔY“Z\¹ý©t?å£{wöµÐé#{Õ?éÍ8”{w§d̾5k¼àÌÙúÓÿ?¶ïCùÖv1@\ýE>T rÙ3Sûvó÷­Ÿ­H5û±Ï˜k ƒœsš1ƒÈ8£•ÚIlnÝ€O˜Ùõ;ôíÇHÆ#Ulz7ü$VçëùSÆ¿o“ÈÅy¾çìIÅ?•qý){Ò祍vÎåüéW[·ÀÁñ¯58ÇÌx¥YXcæ4 ©éÛ0“Ž­(Õà tüëÍ<×ë¸þt¢YûÇßš~ÁÚy™ý«8$Æ”jvùûÜW™ùÒç;›ó¥ã‡`~´½‚Q™ý¥n{‘Ký¡o¼kÍÌàã@¼œc÷Œ?=€½ª=+íðqŒã·JÛ¡<ûÐ5€?Ö1ühööÈôµDOÞ?€4Ÿh‡<1üyØÔ®†2çÛڝý©rå¡RöíQèFæ-ÛwãkÏÆ­q‚CdúS†±uó‘øÒtÕXÌ“Gå?Ιǭy.¡o+_\7–Ç21¼×D5›’>÷ëIý¯9àŽÕ¤ ás:Ž3µÎHÛÉÚ7?ða†E1°úŠëޝ??Òÿ?jÊx UÙö2²èÎ7Ënê@¤(Ùè*쎫&y>ôª3lZVÜãvž~”›}³]‰Ôsÿ?,Tþ}¹­ã'ÝE+>ÁeÜã¶‘HEv?m‹û4DúláGÚá$æÒõAJÞCQó8ÜS¶äâºö¸¶Ác·?öÌ…m¯üùÁÓþyŠL9uÜãñëÖšWÚºðöXÿ?8³ŒýÊØŸ±C÷i4$™ÈtÍÈÁí]sG§6Ðãü*3o¦±#ì‰ùÒŽPÔ¸®£ìzk-±Ïbi­§é§þY°ç³RÆ9ö¤Çºì­4ó¶OÁÿ?úÔßì8œn›?ïð¤ùZ9¬tö¦àûþUҝÌò%˜{cùSF‡l@?i“ò Z£_ì6ùû€ýh?"þTØÆµY[`ÝÖ‹²Ò]Šícnªs¨ÒÖÞNCò«Ò)ò˜ÔUXØ( ÜGzw]Fý†Ø04¿ÙÖÜa#Ç!žµ,AöüÀîóNî±Òíñ€¿Ù6ÙÏ—Î1֍Ӊ0wcùU¨wnþ"1ÔÓ»*×)"ۏ—9íSéúeªÝ©“隸G<ÓlŽ55È#sqM·`å1•wªÁm3Gö8˜ŽAɩā턧M‹iç½a뿹ÔُÝVæ¶Oˆ¬VÂ4g1à‚:Þœ ãw¹ÍRsOÝ+.­¦¹ ئáÔiâ÷McŸ°zî5ÌBþuÜŒ¿tž+¢òÁšÜ*‚›yãùÖrŠOG¡ª“{¢Qu¤’³Ç?ß4á>ŽØÿ?G~¿ß¬™£ÍÑE®*ßözˆ·Æ:óSgܤßbØmœFãŸïSŠh¤õŠHè[µP’ÀF›·gqùGøÒ›FqÓ³î$ïнäèÍ“æÊ2y§m‘‰ä_ÖªGc”#d†REGqGm(䓓ޝŸpÓ±ì:CcN)ßÙú[‹æÏNEfAhÒÆ¶Ñžæ¤{…Vó9'ŒSWî=ØÐv›Þûß‘AÒ¬1·ûæ³þÇ"¦]ÀÉ R)6©ÝÉ 5+lh®‘g“‹ôÏÓ¥!Ò-"þ?¥RûÃ8Éç§IdêÀ)?wu5pÒÛ‹±uéJt5_ù{Š³Å¬Ì¼sÎ3@·[?òFzÑ«Gª.Ž¹„þ4aÈ@ýü\ÿ?´*Š,òeƒŽ¼Ô‹Î8'Z~ñ>ïbçöÀq$Dvù…!Ю1ÃF}>aUí?YØziGÚŠ†VlŸ7Z5£Ø²4;½ÝöûìKÑü O³ ¯ºì`—~} MºvÃHãZ5§D¾ÿ?žYõà oö5îpa'â•é•Á™ÁQŸ½Ö“í¡y•ù÷¢ìN1aý‘|ú“ùÒÿ?e^®·|}(wë’Ò?N9¥]Bô(a3ýhw£°Ñ¦Ýç˜?JC§]œ!ÿ?*“ûNðËw8j—€‘çJì«-Šÿ?a¹ýDœz- ´¸òÅñþíZþÕ¼>i>机µç'Ìý)Ýö+îRû$À`Äÿ?÷É£ìóƒbµwû^﨓ô§ÿ?kÝcï/¿Ê(»TgyÌmùRù.?€þU u[ƒÔ'^ÚQªMŸ¹ö+EعQ˜"9èHPúsî+[ûQˆæ(üQý¤q&"=vÑwØ9s$ƒÆF}©v~œÖ¯öˆ#›h½¾Züd|Ö±gýÚ9Ÿ`ä]Ìͼtæ=ëWí°ç&Ò!øQö«sÖÒ?l .¦I\öÁ£nÝç­k‹Sÿ?.±ŸlQçÙ€OÙ'ëEÃÙÝ™!3Ž8 ½+[Ͳïh ôëH^Èÿ?Ë¿¿SS{‡!”G4mçëÖµ3cÞÜû|Ɓöÿ?©lö©ó”TÓAPWÚµH°ÉýË‚=–»|ÿ?½IÈ|†VÒ)ûfµ|»~쟝U–N˜úÒr%BæY@NMOQÒµVÖÊBy¹>„T­§Cÿ?<î?*—4W#11ÎE.9èkZK;XÆçó‘zdâ²Æ$¼–4û¨3øÑÍqY¡qÉë@'Ú¬µ»tQövÎ8Ï\Ò¸[±YG>¾žô¥sœTßg`3€E/Àd÷â†Çm6çœÔŒL)Z6ÏŠr«£îÈõ©{µË3]”¯™·¶3Iö©?¿Xw–·—3™Byõ"œ°ß?y<ñ¨µ…ÌÏC: `0þ4ƒB?ÿ?¬cõ­Üzœc½95«Lït£ØÃ:Æ<ÃïÅ0øusô­ìñšvÞGò§í¦Î&ü#üÞþbì&$_Åk|œƒŠ\dŽ”ý´ÃÙDç΂übAùR`J.±®‹¹§vÅ5^bt¢sØSc>bô5h’[Γ¾ÖÚÀô÷®¥†O¥EuÄ ý*ã^OA:q<ãUÑMÕäͼ?OV;xK9hÏÒ»[¥ÄqŽë²2Ðç”zœÄ^–P’/ñS *íTm‘xôï]~†—¨ŽCšþǹ%—wÖžtûí…}Mt[>” qҝÇÈs’i÷„@éÍ/ÙoÊm?–s]£4cØŠƒç­îAÁ`ÔrZ]H6²Ù®›q@ôëL9n8/!]‚&Ûڝ²ïå·Êr?ÑÎ0iv/aÅÊs¿éepccÏR)îÀǖܸé]&ÞœRÎ2~•Z ǡΉ.·î16Bà´.9>SgÉ^ÕÐí}E8(ç"ÊsË<ê?ò›#€qN2¨æ"N1œV÷–ðŠM€à`Ь¬ç!w‰ÈpzŒUƒvßóË· +Wô£ËB9QCŽ~yÌèÆzæ¥Y• v’¶ü´Î@y)¸)”À7'r1\Ú¤KµýÙÆ=kkÈŒñ±yö¤GŽxö J,ÇûbŒ€‡€MåK”ö­“oÉØ?* ¬GþY¯åH|¬È7‘žªp3MYâFÓϯöX»"çéIöHsÂUr\Y‚QIê~˜¤ePÜEo5œ<áóÒ“ìpçXëéH0qŠv=8­ß±CŸ¸)¦ÆxZ.¦&3N?w­°Â8H,bþé 9]̐¼ðJ1Ž™­o°Åžô‚Æ,qšc,g&ŒpkSìçŒÓ³ÓËSºŒÒ “J:Ö‰ÓԐr}èûààh¸r·±ŸÆ•O¯}„÷¿*SeÏZM…™C88ž*»ö"rw`R#×wÖ‹‚L§ƒ‘Í8ñ«bÌúþ”†Ðÿ?xRºW»*ã§4ŽxÅZ6ÍØþ”Ÿf"•ÂÅf^)@ôíVÜã®)>ÎØè1EÂڐmöæ€1Î*!‡¤°"êId188äsYzŽ¥qkwˆIr>e;}óZ“ªb& ÄuÆj‰³¿'?k‘Ô§oΡ«²®V¸žIã²Ì¬þlƒ'õ©ôÕÍÅÓuù‡ò4‹§]4é$Ó+¬gpqýjÞ‘g<¿iuˆeÀ"”šKQ%vMŒúzÐç¡íWŸp§˜Z“ì#þX¸Ú¥É••8À4„uãdÙ\)…ÿ?*O²Nå‹þT®†Ó*ã¦hÀÏ`ÛÎOÿ?|šoÙ¦'ýSÿ?ß&“b³+íã n=¿ñÚ³öwêcoÈÔ{ûÿ?|Ÿð¡0å]ODÇ#µ >”Ó“é^aèŠW=1Ås@ÁöúÒŽ¹À§q €>”¸ÇցËS²}ñL?RŽ‚×=…;‘“ͽúþUÀÝõÈÅMÆ™0&íÖ©5q3”¼\\6?ôªéšî â­ßô“P@>y:d¨àW¢¾‘¯xo–‡?¼ÈR—þzŸûäPx$“ùÕq{ ±ÉÆí¼U¯QirÏ“ÿ?M¿ñßþ½ …»Ì?ïŸþ½(9â—qÔÓêPÑ`þñOáŠ<¦?òÑ9ö4â)GÍŠ3ː¿Oz_*OïGŽüŸð§c§ëKƒLù2cƒ?Z_&@G1àzKŽ@£ƒÖž£²Ê“?Á‘þÕ!Š@Bþtî¿J ?|ÜzÃq¾L¼ü«Ÿ­&ÉxùG§Z ç4¹>´õÓ˜ûŸøð£Ë“8òÿ?QNÉÛÔÐ =ÏçB¸ôåʤþìãê() è‡óþAêi2HÆZnâhnÉ â3õâ”Ç&>ã væÄiŏbhÔjÄ[þy·¥&×yoùT¹oSFãëúѨˆðܝùbrñþíK¹½Mc„斣Є‚Üo_¸i:õGÿ?¾MM¹Ëgv?¥2>:ñíBl?ÈÈÞß)¤üÀjríŒîÅ!‘ÿ?½Nì,BXvò¤ÈÎ99•€ëJdcÇ•dÚåmëž½ûÒù‹×#ó«cÛò¤6îƒò¢ì7)?xQ•é¸gëS–ª)ü(Êôò×¶)s1Ùdâc¨©~LŸÝ'ýò(ýØòwéEØX‹#9ÍdÃZ—äã÷KŸ¥caNž”ˆÈ9#¦ã©Z”ˆÏü²ƒDÿ?«ýMáG^iûbë°ú}ã@Xÿ?Vsþñ¥v#'Žþ´ÆuVOÌzTÌ‘pBÞ5Bò¤•L]@<çÚ’w%–Ò1—`J<ÖD¶W$F¹fR2Ùnù¤’Ã÷L²rwqnhÍsïGozÈk{¯0òc?Þ=1PÌo÷£)•X?Ö“¸6l³¤jYŽ?ïI©2îF3ŒÖW™$¶Ï´Êç0' j†Ð\¤[Ê6ŽhbÙØÝہךP9Ï­2?Æ2¸ŽMJ#ùXî,­MÊH‰‡È}+[Ãÿ?ı›zf?ʲ¤áŽÆ¶ü;M&1Ô³\õþkGsL¯sHWÛ¥<ò1Ґk”ÚÄx¤Ú£ŒR}i¤dõü©ÜmÈéšB«è*L˜¦šW‘ŒuÇZM‰éúTœqFÔõsw*fÆyÆ);KzËsX¤jÔsK޹)AëNõÀ41·ŒóëN?þ±@\òiAÉS?8 qÓ(»w¥ò)€z×ëL—˜›è{Týi²Ý8=Å4K9{à<þœ‘Uá¾až©Vï—uŠ­ü|ãŽPÿ?1^Œ~îDêJ¶3ÐÖHŠCpùGr°%±Ç³ë€k4ê¨wˆ„þñ=kDDˆw<9›œ6x¼mŒÉ»ø‰'Ö´íï<éB4[29Îj3©¢—ÝV ¾zšz .¥ RüDJHãæ=yâŸ×±G™¾SŽ9Í\:’mR#-‘¸ØPÚ¤* ØÆ0pXtôê!–äZC&9ùÇz¦Ó^É3ãÌD+W›T!IX+túPº­»7 HÎéè7ê%¬—T¡òYFTš¡Î£óy‡©ãšÓ“R¶‹ËË`7éSM<0m[ ÁgÜÏIîˆùÙ‚–ûØéRÉ<ßÙ¦Lpxã­YKËwV ‚ïqÒ¦óbPõa‘MZà•ÌY./°-÷œ‘€:R5õúJv?2XšÒþÒ´ÜWq%sœ”²^ÙDZÙÀà4⻼€??‚Ç öíHšÃÅàãn:ÖŒ×VÖñ deUn†£ûe‘ÚC®O#h;2;›‹r±Ä.ÂÄŸj‚=Fg!¶(ÆÓÔÕ¸ïíåc’3¿ZîÇÍeÞ›Ó¨=¨`G¨_Kl‰äÆûî8?Ti¨ÎÁ3Ëò>• Ô-&iíò˜÷«bH<‘0eòÀàûSV3,êó}  …v Ï9¦=õÄê¤m\ŒUµ¼°3LÌcUC÷ÍYÔÂ$R¢>¡º 4››4É;‚žõ—g¸¬®Á²7`–«Ðß[1”îP«¸ô4’Ëco™•'®3Ö–ƒµõ3­õyƒ$_gf_âr{“W.nž+Åà” ¾õf3dî¼ |dÔ¬ •‹µûu¡X,ÊK¨ºŽ#ÚÇž4M¨˜šAåe#<œÕ„[4aÌaÇ=i¿bµ.ó;-óuâÙ¦¦\ea'#qçS“Sˆ1< nëI=«Ã™Í¢Ï»Î@é@µ+.³•ÓÊ”õìifÖ ‹ŒÙ<Õüê¯öt“<¡Ø*³d`s@Ò‰t,ÿ?tñÇj,²éeŒŽj3qìcϦE6æÑ݃FÛN1Ȫ‰¤?2sœÒ`Ëìñ„ÜXëškMÈŸ‹ «s§í’=ßw×½AýËðü©ü‹Éä©*¬„žpɧ…äU#±q(;†Ðہïô«ØúRÔK¸Ò8§Æ1çûô֝ƒö|ö-ý*_bÒ*Ïþ©N t:*£ÛqÕ®zä~áøí]>–¸Òír:ĵψè]Ùdãµ!èÖœBç© Œ™ö®cb>¥'#$ŠwLàRxéL‘§¢›’@ô§°=©¾ß•Hî7¾)p}hçŸzLQùÑp4‡­(ø4Þ¢ÉëŠÄÐQŽIü)Wñö¦Ó¾§4ï ‡qéÂ^ ç­ ˜óÖš¹ÁÈÏãN#§zAéNÉÎ(€gŸÎ””Œö£ïJ~`2j®#™¾LH2;UXx¸s´Õëÿ?¾ RˆbáIô5èAû¦/q¬2xâª6ŸD#eê>µu¾÷N”„õõ­“!«•¡²Ž)ƒ%±“U×JVwó™Y‰žic½?p("“i±À,?8=j”ÚDÏ&Äp°’ƒ­mcߊ\U\\¨Í}*&…P3.ÕÆsK“J<àÖŽ¡FÔË}21½°zäÕ™¬„»òF«¸âŒqL|¨Ëm!J²ƒ÷±Þ¬Mg¼FÈå]𫃜Òí žhAc&-!#VÉÜs“I&Œ®§çsƒZÝJ^Ý>´\9Lۍ9%¶Ž7 ù} ¦Ã¥¢ Œ”ÇN•¤TÛéK´c>”ÂÉ™PéP®p~µÑ3.òÀã¡Ç_­mc4cœÒ¸¹QŽúL’.èwvÇʧMÙb-ÃwÎ{Vˆ¸ÀÀ4 #ôV™™åhÙ‰â­ÿ?g°¬?ŽzqWð>”cž:SŒFÒ%u}ÍÌs´)G•!1‚,~ïÒ·:wÈö£‚Æ4zLŠ@%6ާ¹«6ö- £Äv叭?0r)BäP4ŒH4o.,|»Ëd¶{T¿Ùϵðäœm@OAZ¸ÈöÍ}:RŽsûä6T…\ð7g0Ó.F®åÎd'“[¸8íøš8ÏJbåFFg=¬²Cµ¿ÚÏãZ»IŠ^ù£­ ~œRŸjw=3GëÍ?Æ‘ëH<ÿ?J~EÎ:f†ÂׂqéA¸üéç¨"“Åc@Á¤+ŸZ×µ?ri6)ã¡üiüö 3HñéùÒ”ð9(ÆM!Xgðõ /·ìqIŽ˜Í+ŽÚaIŽç¥=³éIÏ¥²F8¤Ûù”ÿ?­&9õ¤#Ž”ü£¯¡&‘ºS°|¤õ5/ "•滁޺ëDÛeÿ?¦kÓè+’½ÉažOҨǑ4Sü«KR_›¯·çYéþ¾#ƒŒŸå^„> n#˜ýi1Æ8§¸ùš€8æµBÜnSG¯Jv>\PÓ½PXAÉôøÓÎsF9ô¦‚ÂtïŠ@6ƒÒŒ”¸¦n9õ>´¡y9ÿ?õÒíôÆ)TsïCd8à ÉÉüéØÇ§sÐSÂ2M)?nÔà9ÎhÆ>”\Î=é.8£úÑpã<ùS±þ4r>´†4ç<Ò~¾ÔîGQH4\Ÿ¥ãÐÔƒ·ýjiÎO(£¡õ£¼ÓZ@?‘éÛô ÂŒzL`àÐ1ïIƒÓóIøR?­4Î¤`)1Í ###¯>ôw§JCÅ!41øŠ{«ŒwÆyúÓ[%M=¸Uãøj]®;žLHGÞqüë±ÆÑôâ¸ù†n-Ó&Qüë±;‰Àüë—ñ#ZW°Öä`güi½x÷íO#àSÕ…Í‘éM9íϵ=óÖšÙâ€ÀŸJNŸSNn?­5‡9 LiÎ:óH?ÇOÖ—ó£€I3@uëÍžxö¤úc4ª2{ÖE±O·ßƒÖ“QŽù HQÔOïž9¦äõæ‚OcÓµŒû{Rúp*@8çšQÇz5?=iç€`ƒš:‘ÎiØ‹©ãŸ©éYƒ™#' ?Òµu1ŒŸzË8óc½z߸e-Åqó0ïš:þéd<â’¶D NÆzš@ÿ?®Î*„'ë@¥/~”½(?ãQì84¸ô9 ?zU\Ÿ¥?d‚)ÁGÖ€x¤· Ç8ŠíÞŽø¤žj®!1Í)ô¥?PG ëEÁ!¸ÉíF=©Øãmâ€ÓµÏâ;Ž”PqÎ)qNŦyö¤ÚzNÁÿ?&—4ãOCAç“ÐRàõ ¯ÿ?ª†ž´cŒ‚·$zÒ§?˜´y§cŒ÷£ ö£PA¥î1¸ÀãùQŠ\qÚŒq֐ÜpN(ã4êR9 cOCF8¥u£sC ØÓž½híŒÓ½)”ì79âZP:æ—=֞ⵆcŠ ç€1NÆG4c9©w°À3Aö qÍèÂzqMãïJGzR=ª@aÒ=©äb“•?3jiýiä`šLN*X¿Ý4ù6ãû¢ôô§H>ÀTßP±WµT<æAÁú×\sŽGJå­”6µi‘ѳÍu\“ÓŠå®ýóJjÑǏJiáyü©XpqF;öõ¬K¸ÆëM4ãø}i1øP:ÓN{iäuíõ¦tÎzP§#õ¦Òõ¥ç×õ¡B÷jqãÚšM(äÖI—ay'§­8`ùS}<1ßëEÄ(ûÀR¯=9¤?äf—ÓëNà(ü>´áê:þ´(ÿ? QӚũ¥úÒ ¥î8¦F¦1¿×5’N cû¶u1÷³Øô¬fê wÒ~錷$”eÏø¦ägœT’Œ¹±ni/¤›°8$ã´v%»øÇ8¸çŠÊ7—çk;zç©©’êY´÷—[?U†éF+µ mã‰v$|Æ­i8ãÊùÀÉÔÄ_¥Çt”uY*l˜ñŽÕ¦Ò˜°àQpè<ÎM9ëÇjÄ:Ö!£Æw«jÁDaTa“íM04Ǧ9¥ÇåX+ªÜC,€¢ÈŸÇ*>µyõÙ$ÇŒvÍ¢ŠËþÓ”HcòÀqÔžƒŠ|z“I2 Œa»æ£CÎŽ§­P¾Ô ´Šª›ÿ?½íN¹½’!•mãw=¸§p.ãœRÉ“Yt_õ¤8 J¬ÚÌ—ɵHéò~"‹‡‘¾:t¥¬Ãª9%`:ýìö¤©0³¬~AîiÜV5¥.8ÍgYjMy Q̘Ÿÿ?]<êÎ(#ùmÏ|Ò¹V/cJLŸðªWòE3F±n 2ÇÒ£]U˜†~ìôçšW}ý(ÀÛŒž•ý¨|Æ!×ißÚ8ÄGËšwñÅ. R¸Ô†‰cÈA–9¨—VórBrsš.—NÔ˜çÖ³›Vʳ,D…ûÞÔ‡VQn%òÛôö¢ã±§Ž;Rb³SXY9H™‡LûÓŸW‰$v±q‘Î +…dQü깚;mñœ9Ç­WnÍç¶à6@§qéHÎ1YɬDè_ːãT¿ÚüÄ#•^­Ž)\h´Àç£è*ƒkáÕJ¾[Ÿ»œTâþžã(¿@±c”UX5gY û¿¼¤¥¹ùºp6ò~”] -sßòcš„^Äa2’UW®EDº¥«¦àÇÇJZ>ý)1ÉéU—PäÛ“×Òšº•£Û.ppGz–ì¬qŠB9¨þ·æü?éK5Ü6èGÚ­ÐÑr‘&8Í'=EUR‚GeÝÓ€qÁ¥mBÅV@XRƒÈ01Zi8qNì3M8ö¬‹cHȦž½)ÄŸZoQ“úP-Fž?­4àuïJØÇ<ðGjÜÔ†Uˆ¬IAÚHÅwQÖ&SZ’Ê>«;Ùbšµ'Þø¬û›'š]èÊ20r:VñØ–K*[ŒI SïDolñ”B¥1Ȩåµ-h® ïÎjœmÐW`áò¦*„]ae$€0R{qS8·Œüà Ã+> HæV.ðI#š³uhòK¼:Œ®ß›µ?<%š°Wqç¥=d¶Pãx=Û5Z-:XÁUu ó¸Ži¤Ë UgPŠr?Ÿ­0%k{†ùFÓÉ©–Þ́p¨s×éUfÒZDÀaû±Ú…Ó'Ž6H¥_›†ö¦ÄZû5”qn(»O94âö»r¸ê*‹’Ö•ÇÊ?9j½¶–bIU¥F•†=) -c.ö 6 õ©V;O5T –³ÛD}ª©Úw{ŒTÉbbž73 UêI§¨Éï~ȃ|ê íïO m&ÁòçoÐUk»7¹‘žŒî9çÈô¹ÂˆË®Ðs»šb.-%É §qQªX«î2½émmeFuËgíTcÑY8,½?­0.´vM–!zäûÓ¼«F?\˜¨M`¡RwgRG§H²Æ|Å89n(`‰¢6Ö·LhˆÉ"‚Ö_hRp]ϳÙ<’;«%p*•¾‘,R L‰x©X._smó“´“ÃR%­£1ePHJ t{†—Ì2(õ«¶¶on’ouùºQ¨Ç,…J?¸$R¥­«¶ôUãÞª¶”ûk€s“ïSCi,K)lË€«@Ä{{i§ižMÜ?FiæÚ͆Ì*ú?zUô¹äŽ<…@ ´ù´é†yQßws@.Ò “QÕW½Xk;C‹+òõ泡µ¸žto/b'¯ztÚuÄ·–EÇ|5¡~+;D\&ß^´ßìëY+Øö5?Ó&Aº6P}}©ö·0Ü;?*݁ ’K™ öWWnJ|vye '#ø4Ë‹i~Ü&TÞ¸®)¯c$’I&Hf#=) kd‹¶3ØÓÆŸ ݇!HÁ\ñUŸO¹e#Í?)y¦ZX]$伬=ó֘Λ‘NpG§µ”%¤n7?_j«%Àñ»y»Ï9íQý’ïk¥xÆ3÷¨ó ‹Vútp¬ƒq;úš$Ó¢“k*Ê?Sn ¸{E$?pZ­µÒ¤@ï8õ=)y…‹‚Ê?³´Dä7$ŸZ´Ô€d=y"¢hnÂH6žMH"ºþÍ)È—=è„i¦ˆ‘ŒÓ|¥²¥1ô†ÉƒÌìOj$²¹ÄJ™Nf•á»û«¿vylõÂÚf“ŒË–#ç÷§]éÿ?hEPØ?bª˜.÷¹ˆôÍ2V¿óWj‘Ç5:‹M‡f-´d<ÿ?'^”Á¥,æ¬ ƒíFég´m©#g‚›»HÕYcëC †—³”“¯J½^TasR %î¸æ”ŠOQ­`ù¨#4¯ç½(¼N¹ÏJ’j:”.Š¡µYØòǏÔW@zt¬þèœp£ùÖù#?cŠãªýök… ¤ ãüi„ñŽÞ”ëéF§éJ}7ß­¿ÔÓ‡ä)¹úšPCp~¦±4°ð{ô÷¥Æ}©¸Å;wJ`‡cÞŸœŒÍ4cŒP2Olt Wg8æœ0FO_zjӁÁç¿¥0øþtî:š`úÒ€sš`QÔFTý9¬IÕ·5¹¨r§Ó‰"“jî¡ð˜L–N£éÞ³îf‘' §jc®3Zt^üu¦m Ô[GbZ0âæ;ƒµ ÝÜŠ¹5ÜÉc%ÎzíéZ~ZáúRìB¸*1ôªŒkkÛÙƒ±]¡÷zÓ'º¹–4f®!õ­ÐŠ8 ?úQå þ `P´ºžYdÎ6Üc—W‘«H#~иíZªˆ½iÛŽ@úQpègZÜÍ+í|‘·'Œbª%Ìð—bçå#µn**žõ D€ð«“íEÀÄ{›¹D`gœ!zTY!ÔãvãÜκ1ŽÊÅrsô¦†ÊVsI3”nT®Kc¡ôªú•šÇ²î$0Ï¿5®Tð gÐPUXa€?Zaèeït†5¶Àfl1Áâ“í·H 1ïŠ+T"€ ~l\ôý(KÛ¨U€Œï“·Š³euqqÉ*àÀÅhõEü©Á?S¸¬bI}z¡6§\äãô¨¾Ûuvä‚I¾c\ýÑǵ!†29EÇÒ•ÂÆ7W2+™2»È: rÝÜ(¨J/C½[^Z«ùRùiŒmLRÌ»{Éݐ0ëÕ@éQßÜ͵Àà)á@ë[5!G½4'%F~”Á™67·SO¶T;SgÔnÒåÕb¦GZب9 õÅ4<”\PJ_]àåG·4AïyŽFÞf´<µäm•*¢¨àô­0ÙfûH–@@;ʝÿ?ZÜÚ9ôß"1’GÐQt*_\B‰÷wÇJrj3*¿Êo?7z×EÚ5üª)l •Ã2þ…¹šu‰D€÷+Öš·ÓÌ–0ö°-¡#\ý(6Ðÿ?Ï%çÚšÅ;‰..ذÀUÇëGç¥"ĉ÷TÜSñHã§z)M/J†à@x4áùýh÷çéEÀx£ŸŽsIŠW¸íM>ÔóMïJãsH@Å.8Í!\cà`?)Jyîi¹8Ï 7Šp¤õ¥vUs0æšFAÁúS×^ S€EMõ„Ú ÿ?¤]9<×I{ìÚ+ÝCÒqé‘KžØ¤ÚpEMÆ0÷Í4Ž §SqÏ Â‹ŠÃI)¤úÓˆÏri‡ùS§©â—qô?•'\õÅ&=ÇçHH¼ãNZAß­*ŽxãšÌ»uî3ŒSGù4 ’qÐÓþ¸?Ò”´€ã¡Í8õÏ4?«×¯9§c‘×ëM¨4þ}GåLBàSˆýi¼íNÐ2ø[¹ÛXŽÖÏç[·£ Ï¥a¿Ü=1]”ºe5¨öjw8¦bÿ?,£÷Z¯qt–åT‚Kt·ŽÄ²ÇniG Šæ9S9œsëS+®N P…Àæ—w1ȬÁ€PqœÔ»†9aïÍ1Å/JnôèsÜfž#9☠Œš\Q›˜„Â=ë“Î3Òž$B 1ìiØž”¤sMÞ¹åÆ~´yˆ?˨Ͻ0Ö“»—‘H1áÇ¡¢àZ ÓvÒF}3J¬8ëŠ?AÖ—¾)<Ä$üÃŽ¼ô¨./b·@Ìr Ç€,b“ð¦$Èê­¸|Ý3Ràc#¯4®Ž(Á¦ùˆ‰x÷¦µÌJUw·NhB)ïHÒ*®IŸZŠHù†~´?¸£å`Ü‚ 7zcïw拎FÑJJäPi¾buÞ¿?.)1Fô?Ä?:l“FŒ¨HÜÝ!ǽÇjkO€KŽN:÷¤yÒ0K0ãÆ?ô›s×¥5æ#23?1žiÉ*:‚sÛ46ã˜â‚Ê€>„ѽ?¼9£`°c(PYAÁaŸ­—ûÞœÑÐ, ŒcލëÓpôë@aÓ#" Š1œsN搊CCHéMÇj~0i1֐ÇzB;ÓñMïHcšWÖ¤>¹¤#=©1¢21IŽHïNÛœÒc5!a¨>rHíLn™ëR(å³éQɍ‡ùR¾ Ëz?Í´­Ž¯ÜV¯ñ×Þ³ôtÐÄò]¿iãv®¿y›¥ Æ9¦ØäÓÏOÒšsR!ŸjiëOaõ¦ä(¸ÇSM''ã׊oCMi¦Œcµ)éM8Ï$géMêir=)?(Éã½b[: Ç·ßriGJb ÝŸ^)ã§¿Zzžæž?ü…?;8îißCõÐiÜЀQŒæÐã4Üþ”¸éTd˜Ò°Ød5nÞÝõ¬6ã?ZëÃìe=Çõ1ý*Õ¡¸¹‰‰ùTsW‡éÔ`UHï|ÒÂ8d}§ŠÝ;"»+ÏdÊÃÉéïRXZK“Íä·JœO'üûKù p¸›þ}eü©ó åftÖ7" ‘÷‰5,v7QY°1ósW|ù#ì“~T å#þ<æü…>h÷;™¯ctØP??çw­i(+M¸U\d})|ùçÖoʏ:bqöIJ9ãÜVf/Ùî.% ŠË€rç½X]>åaÀë‘ÆkHM(?ñç7ä)ÂyçÒ_ÓüiûH÷2€´¸†Õlãœô¨äÓ®38Œ÷­O:sÇÙ%ý(óåÿ?Ÿ9¿J\ñ¤SS¬Š|˜Éç½6ÎÖå.ËÉ€¸9«¾|Ùÿ?9¿!GÚ&ÏüyÍúQÏáfgKgz÷…Æ6“ž½ªÕœÅð éVLÓùs—ô¤óæãscð§ÏáÊÌw±½<Œ~^¤õ1µždYAsÑ hùÓc›9¿Rù³Ïœ¿¥ñî¬É]6ìL¤·ž•zÒÞh¥È2¤qV<ù¿çÒlþãKçLzYËúRsp³2¥Ì»†Ý¿6rOZS¦ÜPçåÆ:ÖŸ6?ãÎ_Ò”K7üúKúQÏáË#=¬. `\1¶¡û çœ?ãÒOҏiáÊúí ž;fV 9éTRÆðJÎy\çµ®&Ÿû$Ÿ¥lÿ?óé'æ(çqò½ÊËm7Ùz ¥›r>ñýk[ÍŸþ}$üÅmÁÿ?—9J9ãÜ9YžÖW?Œç¿¥XšÚV’6Uqš±çNåÎOҐÍqŸøô—qMN=ÁŘ˧]¼û›AÏZt–7²\‚@ÚHÏ>õ¯æÏÿ?>rþb2sÿ?.rþ”sǸ¬Ê7v“¾¦á°.=*;{+¨ö†ÁÉ#ùV—›qÿ?>rþ”y³Ÿùt—ô¥ÏÔj-·0\Ku&Äã Mû ÊÂŽÜg= i gÎ~Ç/éJeœÿ?Ëœ¸ü(s‹{‚‹0¥†éœÀ¨Å÷gjžêÎñ¶ûc½jo›¯Ø¥ÏáJe¸ëö9J9ã}ÖFbX]*ƒ‘»ƒ×½:{´½ÞãäÇ#5£æÜcþ<åÏáG›?üùËúR獷Hdv¤;¶ñQù·óç/éHf¸ïg/æ(ç]ՏÜsҐ±ÏJg›>ãÒ_Ò›æÏøó—ô¡Í‹$-Ç“$•–p9´—ô¤2ÏŒý’_Ò—:™)ç·ji5–~ö’þ”Ó,ý>É. \è,ɸ¦œT~lßóë'éRà…‚ Á£™?‰ÿ?-*)²"j™~ëþÁÄ-In&jè£n—{’Z¾[¹æ©é\þîZ¶k‚OSa§úSZyâ˜i†’iÎqŠR;Rn´Ànsõ¦9ïO<Sï@†šm)捾ôý@¿úzRŽ™ïLÏ”CÞ³,“¾OáKŽ?9¦ƒ‘Š^Þ´ÂÇ֞>ßZgùÅ8ŸzBÓŽ”áÒ˜§’piøà`ô¦‡89§gZhìis@Ýs}+ù'5·sÌ\œõψßxûšëÃìg4m×éV|2£ìÓƒ‰j¬£÷ÅXðË~êägþZº¿?¡ñ?EÇ ~TàH§ó§Ç$ áÔèÜ©ì?*]Šp0(ö4áEÇa6¯(ôéFÕÏANàzRçó v´ŒŠvÕÀàqíG¶sA¤häðy Ó½òOÒŽÒ€°Ò£=(Ú¾ƒ4óëéÖ“‘@$&ÐFp)6ôîÞ¢ÏJ.hô›÷iÇÔŽ´g4îjŽª)6ޏ¹ÍñJáa6/ ¥Ú£øE(úQÖ‹…„Ú3Ð~T¡T?…/+ŽÖ±qœ pUÂ)zŠæ‹†‚m_AFÑè)ÄóHM;ŒM£ÐR_îŠvi(lBa}.ÕôQº•Çd&Ñ@QéKGn”Ûb¶£J.: M£ÐS³Ího@э ÐRm‚œOæ %{„ zQž‚—½'}(»»G¥&Ñž‚ŸÒã½b2£ÒšTsÀ©3M?ΝØYÀÏJnÑè <ŒšiÉúÓ¸¬0¨ÇJBªœzÒ7zb&QƒÀ¬;ÎeúzVëž a]‘æ~½ ̪Wý[}jµÙÅ»U‘þ¨ÿ?½Tµ"ÑÈëŠé[˜³LÀÓ­Àãä«$×ou¨%¬`[Œ4ó}¨ö·?r:LםYÆzÓI9®Pßj?óïúÓMö£ÿ?>ÿ?­É“Ϫ$sM,;W*×úCnqþõ7íÚˆñïÿ?QìäÑQß}ÿ?>çþú£Ù°UÛ.@÷¥çÒ“9¥B `‡Þœ3Mþºvî?Ñ`éÆ”xÍ 7_zpŠ8wÇãš~ìôëL\íNàñLgŠU'¨¤V1špŹÁ#ëX¯€Çë[w1k@7“]T6" Õÿ?Qøž*o ËÐÿ?¦• ©9ç“üê_’³ÝöóZTWƒ>#£áíQƒžÔñï\'@àsNŽzÓQÚ” &;ÿ?õéG'½4sKŸj@8 PxšoSéKž¦Š??j3Ö‚N8¥ëÅ{†xæƒÔzQÞƒÅ=襌óH?ŸÖŠ3íG|PñAõ£'4(oΏJN(î ?ƒ¹Å8u¦÷ÏOQJ(Hbô$œÑž”ƒóùÒŸj«?gבE掔š3Û½OJCEI¤ÍŠz éFi3šÀõæF~””€(>½¨ôâŠ5?þt‡ÒÂ“š!¤''ŠqàSI¦®i§m!‰“M4¦›NÚÆŸJiéüéÆši‰‘¹À'Ú°®I2Vä¼)úV É̆º(îc2þ¯ñ¬½mÌzl¥N8­<â =Ífêû ¡W`‘’k¢;ÜÊ[XåàÖu†ÛhÆMX{Ï(ÈHÈ튛VÑ¡“ci÷#Ì÷s\ÄÚ®¯¦N#‘Xv<þUº´µŠ9Ÿ4]›/Íâ-fÄŠ=ñL-¿ öü+òêæîApÌ~n{U4ôl1­ãN=bgÍ.Œß>+¾’3ô¦Ÿßg!—Jç˰SÀ"˜Ò€FA­)uˆ''Ô菋/‡u#ØSŠï»•ü«x=©;­5F›Ùï¹Ðßx~TßøJïÙü«Ÿ-Í‡µ'F—T={ŸCã>´£¯Þ¸R¯½|â=1ùùx§pzÓœcõ§ulvúSLçé×4¹N:})Ž)Á¸Ô?à~”õÉíÚ£ó‘Nï@XsƒKÔu9¦nà’:õö§q޽?Z.`GëXÒœHkbOõGðÅcJ1!®š™ÌjFF;ÔšwkÛvj4#cý})ÚÆ¥tN+Yü,QÜéLfœ=j1Ï<ÓÔð+„èCÇ|S‡_j`<ŽiAô cúz}(~ÐxæœG4†;9æ—ñ¦g?N¸Í)9`÷À©r@÷¥ÏBZi?R($äPòs“Üv£$ÒêzÑžßÒ„À^„Ði3H)Œpä B2hbàž(zw¥íMïŠ^††âŽÙ¤Ï~ôqÿ?]+€ äÿ?:Qœõ¦çÚ€}þ”ÓséúRþt:Ñži¶÷Á£ŸÎ“ž´ ›±‹Î8¢Ži4ö¾ÔtâqF{P4ô¥¦z3é@!sG?AAç>”\sšBy>ô”gž(×p O^(÷¤8 ,%ŒúSI šisM¦ùSO4Í4úS”ÃN&˜O4G/kàæ·fæ6ÅaNrçšè cP‹»ëX)—ÉÒ™ýÇó­÷"ý+—ñ'I*I`>µÕOâ1«ðœÕ΢ñy.Ÿ&W¨5ŸqªyÌ…XŽ„ŠKëYÚp±±À¬ãepr|³]ÒÖ²99o».Åz% Uäõªä† ¨8©!µ¸Že`‡­¶s-Ü75Rz(\j\dð2=)®å[|§¡5ÙçÔ±¬¬)-Úš¨Þå5ª#i·§4¢B§¥We}Ü©ü¨ËŠk$Í9lÝMJqÔþUD;J™(+h×OâD¸3èÜÓ†3ïíLÎ)A<ó^ÞI“œ~4d~=(#§áJ:vÁ¦Œ‚9Í<€pÓ‡A“Mm=}8£Â24?Ü>žµ‘9&fÿ?õÖ»œÆ}@ÅdÏ‘!®Š™ÈŽ!…~iÚ9U¸ ­2#Ÿ34º_¼¾¥Gõ­§ð²cº:Qÿ?×§Î3Q¯œO¥p»xïNäõ3ÖœÆ?LÒ)'Û¥.F@Í3°­;¿¿ZC¸á×Ú”MžisƒžÒ‹Ç{~u펴€ñÁ£´?¤ÒqEèi¨é@\ZAÓëIíGãL?úQŸJJ3‘E€ ¤íGãڐŸJ?­4ãœRŸ­! ã­!"Šm1\CM4ãÍ4œP!§ÃÓŠqü©‡ñ¦"ƒˆÍaLynÕ·rty¬9O'ë]Lg¸É>êãÒ¹O3-ŠûÅ…uÛé\–@8%ÅtÒÜ®Ç1z×e€‚AçšÎcwÔ³~u§|òvÜOQÅeŸ5»±­ÒºG.ÃÒxù›ó«ipöðÈ éƒïPm”ðK ²Êíd?bpi¨6ì‰rµŒò'XþtF󤀜ðy¥e“?ÅOPFK}ªcÝ›4¾„wE”ã§Z€1Ï V„§uº¸ƒŠ¨'æ“‚oF8ËM‰"ˆ9áG½Kå->Í—qSŽ}*ÑAž¦µqqvfR“L÷ç´àxôá‚1Q»°ëŸ­-‚÷$ãH¥ÜCLÇqÖž úb˜åºSóÛ#µ{Jxë’1@/#Д½úþ4ÀsÓ§¥)>žÔÁ±\æ6Î1Î²® óNyçÖµ˜ÛéY3‚d<ñï[Ñ܉‘ÆNd(ÓŽ5–Áà¨þ´Dy ö§[ªÃvg'œb·j颳GD ÎGëO?úÖ`¾éJuóŠåöR6çHÓ)ÃÛÒ²ÿ?´;Rý¿“G±ý¤MLò:P9Îy¬ß·Ÿ|ý)?´ÓúÑìf.xš£Ž‡½‰<œþ5™öóëGöÏ9£ØL¯iP=)lsèk+û@œRA€úÒT&/kS#¥/ãÒ²…ûRÿ?hÕ^Âl~Ò&Ÿµ•ý Ø4¿Ú ޵?W˜{HšgCë@<ÖaÔM!¿9£êóiTqÚŒûVWÛØ÷¥þÐoz>¯0öˆÔútÍäÖWöƒ >ÞÔ}^aí"jäfŒÖQ¿lñš û~µ^Âaí"knç´núÖ@¿|÷¥û{ZŸ«L=¬MaJî+ _¿s@¿Zo1ûDk“Fx¬·¿­!¿~揫È=¬MŽ)sùÖ7ÛœzŠO·IÚšÃÌ^ÑDõ¤ÝÞ±~Û!ã4}²Aޏ«È=ª6·b“pÅb›ÉzO¶Éƒ†§õiÚ£h°õ}i7Ü~5Šo$ÏZ ܇ŒÓú´ƒÚ£d8ÁɻǨéX†îSüT†îAÆê_Wa푵½qɦ—_ZÅûT¾´†æOïSú»¶FÉuÏQH]}Eb›‰ ûÆšn$ìÇ}]‹Ú›&E­!p{ô¬_>OïšišN2Ə`û‡´6L‹ê)…ÔwŽf“ûÇ¥!ÿ?½Kذç4n\ÈÅ—×53LÌMBý+XG•'}AÈ-øW#â·"h?ÌÎ?:ë¤áÈéTb‚)õp² ezе.Us9®mîr¶pî€u?…g›¶Ü‰úu¯CÕü5o{1üŒ9\t®R__F¤…V޵¼*A£–t䙈×nÇ”AøRÇ3˜í^9éR\YIlå$Bö¥·ˆ%v­Ó³¹‹WЦn$<OÊ™çÁ¶)©LuœRzì$æÚH`{V{c8Ø9ïZG˜är*”ˆB’*S±wÔe¨A0,1øÖ®ÁýßÖ²‚:ÕÐρI¶DÕÙiroÒ™¸Ç¶)ÃÛØWŠ{»vÇó§¥3ßôîãƒÅ01ŽG&”näóøÓÞÎz*U`O¦ƒšP} 4wzS{w¶ìñßÚœéÍFnsOÝÆIïÖ˜nÕ•p~jÔÜB¾} eÜ?5½©œö"Œ~ñÈ9àSÇqMŒìpsýhcµKvµÒ·3$ÎqÍ(Àèk0ÜHËŒþ^ö€3šÓXÝ"Rç$Ñu{ÚÚœ:f¨Itë>ÌaGsLþÔUdr?ª±&žyÍšn¦)&1'jk^È'tP~\qëL«øž”ì‘ÏéQ£n@HçÓ·”vh¦çÓ9¥ $œÐÒƒéHr¾}höÍ ˆ\òh¤íJzSÐg?æ“¥ŽqH.;4´Ü÷¥í@Ť£×š^(?Î '9£"½Í0?sEJ) ?hÏ­n);ÑïFyâ˜åIKœRw?dæ›æ¦í»×>™¨n÷ù8Lä+B=:ÓìÈJØÏAÖ¢sQ*1æ¹_8=¨'Ž*+ã² 6ÜV:Ý\~çwEÎyëT¶¹>FÞïqŠ7ƒÐÎ±×|«aºx†t1¾[¨È§ahlû擊NE&xÅ4”¹ëïMéސ ‘AæŽÙ¦ð{b†ÚšHöëJzRR1áM"”šoQڐi‡¶)ÄÓޓؐ嚪Ùÿ?È^B{GVäŸLÕ;6#RŸœáqŠRølhÕwª²0¥wÍVwÍLb)33Xµ[¸ óö8®xiÒ@¸€í]TŒsUeÚÃdtÁ®¨¶•ŽYÅ7s‡¹ ¨6°9ëIkiû²Å†I®¢K;b1å/ä+6âÇË,SîÖŠIèdâÖå8­ˆ ÈéëU^ØœŽ ^…~öj¬ùÝÔŽ{Pˆ•·3Z'†N šœ.@4L\óÖ¤\íOJÕÓM\Wî{V)}9ã4˜ÉÇZzÿ?õëÀ=¢N£ŸZQž£½3<`Œæ˜?ô§/•7¨¬8ƒÛŽõ™rFzÖŸ8àñYw žÇÖ¶¢µ&{Gþ³œt Üuš îF)ß7÷ZêÒæB‘FŠ›3´åsRI!~I8ª0ŒÑ†ÏNÜsJÊ÷ún-çž\®6Z™l#?–_™ªÈ éN?ÕÜ›-ºEé³¥9 U•Ÿ?³u©6œv£ ëEÇaýµ.ášnӁÏ4 ‘ž @/>)ÀñéM?õÈ¥Á8ä})Ý?qÓµ/ PzŠB š@©{Ò?zf¿íSLÀ qIƒž´`â¢à.i}i1ÏZ6ÿ?µJè-¨¹£=é1ÏZ6ñ÷¨¹4”þÑ ýêm…®(8¤ÏjüF£ûÆ‹……íFH¤ A êi ôfŒ/rhÀ÷4ä~™£—@ NóÜgŠnÞŒ/¥PC%Q*•~† q)žµkšC·ÒÁÚ§—?ŸQK…ÇN)>^˜ 'ަäã“Où{´œc§‚ÂzLZ\ŽÔ‡‚–£p¦ä qÇ]¢“#ÐR¥½i æÇ¥4ãû¢Æ–Ó{S~! ö€fE79uúÓ÷sÐSsß>´ƒ¨Æ=k>Ù±}pG_=ë.ݿҮ›¶ðåT•Ñz—Yù"«;òy4Œýj»¿'šµ7!e|Ÿz¬íÿ?ë§ÝÇ9¨[w8¯C7ÜdÆI¬]CQ˜SúÖ•Þõ…¶ƒÒ¹–BNY_$Öô!;³²¶„±ÝIå9$géUZáÏñ{ÔþQ1ØÀU£eø®•_C4ÛÜnâÇ9Ï5®‘Ÿ-xd¤xqƒÆ{ÖÚƒ´|ǧ¥M[+!«\õppØâ—wùõ¦ƒØó@=|ÙìïïëJO·9¦ŒsN݆4ì;¡ÿ?/ÿ?¦zc­.ï¯ç@ÉQÉÇjQß?…F2Oò§‚ÿ?ëP’?Ÿþ½('{Ta²iÀ`šbc·g§éY×<0â´OAõª<{óZÒø‰–ÄqÚ”“ƒŸOZ`8Å/Ôöõ®£!Àñ“J?ýT™Èö£œSÃô§àœÓAÎsü¨ïŒÐó“ž”¡³Lê:RƒŒÒ êI??…3œJ·Àw\ÒŽ:÷ö¦äãÒ—·=;Ó¸Åöâ—8š4¹Í1 8ãŠPxoj\úRxíGJBy£¯zcè.ýT¹æ›š3Bê3Iž)3Žô_PŸjAAëFìœÐÆ8)ê"—kÒ—$B1ÅFò”FcÓ7¸íaûzQ´úUH¯|Õ,xQÔæ¤[¤=$õícÚ“cgÒ«›Ä’ã½9.RBv¸<Õ)%f¹dÝ´šV¸î_!}i6¯÷…fK¨¬.Þô‡P9 P‚zqJÌ\ÈÒ*¼óM!}k.mE•ŠÉ8æ¡þÔdUܙɣ•‡260¾´ÆÚ«Ù¨¡É¾1¸RIÄl}©ds‰£f^€ã5‘b[Ÿ÷úUë/øócþѬ¸Xîœç“)«ŠÜÆl²_¿ó¨ùæš_½BÏÎ+S6ËvŽàœŠÒH{_:0»ûVNœž|ì™ê¦«C=î…|c—s@í€OLVR‹“vÝrÚû3Bâï:Œ«lFX㊭ª")¼¸Â…àÈ5jl®·Æ?tÉ×Ò¢¾±‚!5Ë\ü’Œ×FÑhSMŐ\(m &Ø‚L˜/½3TÓÒ ® RY~^µu6G¦*3D«¸5PÕï…LJIU »š!)s.^á8Ǖ߱ȹsרªû1ŒV`b‘‚OSÞ·bÇ”Ÿ3}Ñ^…i;œ´Òw¹é@úŠ^ÃÝÜóô¹ì+ç`\úõ§Œc-ëLÎúôs€OAÎh‘K¦i; QŸsڍÀxã­(=½ª58÷§ úS <iE3 ñš\žrqE„I•Á=úð*…ß¶@Í\ÁÇ¡úU£œŸÒ´¥ñ=ˆ?PöÅ3waùÓ«¬ÄpéŒóGãIœ_­.xõ¦à“úÒŒS3ÏéAü…?;¨ãJG#ùbš9=.séL`\fš½/NÇë@ àSyÇ#?Ðx }gž´Ï½ Ǩ£µØw~´g”véCÔ‡=(ÎG¿ÊšíÞŽzfŽ)8£¨…‚”qIŸZZ]F-&9 žqGz`JÄ”duªÓ|а'¤š&”Œ9P; ‡ìyÿ?–­B@ÙZÞ¶¤?'®jSd‡?> ©~Ä?ç£Qö4þñÅ6ÆW–À>í¯ŒŒu§ÚÚ¥º²ù€–ã­Köó÷š±G“ËR¸¬W{X®$uæ£m>? F?Þ«Ÿb‹=ÿ?:œ^ÿ?;…ŠâÎL,ƒó¤û%®ï:õ«_dˆvýh6‘cîþ´®4B‘Á2Îj´´'%ò{Uß²CŸ¹úÑöX{ üh¸°µh%ò£¥D±Ù†á»U¯³CÓ`¥û4_Ü^h¸×ì¨ûÃsœÓ予!Ãvâ¥6ñq*gýZþT®+iÃýžybqV¦¹Ž5UcJ¨À? BˆÇæP~¢Ñ\ÞEëÇz§7‘,»Ë0>Õ¥åÇÙò¤ØƒªÊ‹…®gæ×‚T“JòÛ62°*÷–™áGåFÕþè¢áb–Øÿ?Ë3ÇÖšÏnzÄxô¯ éIè)\V*´U?#céL–ëtl¢7äzUÒ¦)‡ñJág±NÑLv8 ƒÉ5‡ÿ?­9Îdl×EpÛ`|uÚErÑ?Èä}¿kMu2ž–DÍ(ÁÅTšò ¹Þ8éU§Ôbˆº±9•ÎOu¾vd$)=3]0§w©ÌäÞÇY¢ÞJ÷R2œ…Šé¯Ú-BÕgÌ$zà´mV+RâW(Ì0±ý¿hŒÒ=s°Öuéû÷‰tçË3QRh®äIÆcòð„ô&ªµ¼Ë¥•›'-‘ùÕ6ñ5¡Œ¡ˆ'‚PñL[]¦V<ü¤©â²J]†ícªº?茑`“Jæµ™vøn(±µ²ëQÂOncǝ!ã £«ë1^Ø"ä’F3SNœ¢ÕÊ«4ö1Z@Έ{k®Ž4ò“è?ÏZã-@’íç,+¿E]‹ÁéZW–º‘ÛC¶ç8üh ûSsíõ¥$¥y' ;sNÜ1’M3'ê(¾*vÉ3ƒ×šgÓ&š8#¿=iz÷ç·½C'¶~´ýØÇøÔ@ãéNÈéëÐА\x$Ž´î:œûT}8î?'ßéE€~Oÿ?Z©ÝñÔóžÕdíT® žWÂÞ´§dõ&[hB8ãœÑž3@±¹#™Sò§fÏÞqùWG´‰•¤&yÇÒä`véNdÏž?*_ìÇÿ?žùîÒö±+qŒç&ÙÀÎ*A¥œs9ü©F”ÿ?^Äý(ubŒa ã¾hޣЊ”é)ÿ?=^ì˜Î?xô{X‡#èFô÷¥¹à€ja¤Cÿ?=œ4¨{³~t{xAy‹ÀÜ)<Äé‘ùÕ‘¥[àd·çKý—oÁË~t{h‘•Œ‰œä~t‚TþðÏÖ®f[Ñ¿:Q¥Ûsòž}é{h‡#)‰S¦áùÒùɏ¾*ïöm¿÷OçNu°þøš=ºfÊlcø–ƒ4Þ|iöÇø?ZQcl?åÝvfÌß´Ä:ºþtŸj„™?üj†³ !ÞK¨ékyh‘ÆJQ[BJFmXºo­‡ü¶Oΐßہ̫ù×6¾+ÿ?-ä?SS¿†…ýì™ó[rÓþc>iö6šþ?y”Æ”jÙÇš¤ŸzÃo—'tÏ“Å9<5‡æ¾GJ›C¸ù¥ØÛþÒ¶ùÆZ`Õ­ü²ô¬£áÀÛ³#üÝi`ðÌpU›Ÿ\Ñhwäú‡VµÎ7óè)‡X´S†|­Sd/–ÏzÐ;†mÙ§û¾áyö-6¹f­ƒ'ëL:ý˜þ>µðÝ®íÅN}sRÚÊøÕ¯aÕ²«Ñ|Ed:7æi§Ä–C©ýiÿ?Ø¿óÌSNgÝö$Qzaûï"â›q»õ¦Ùuçgþû`ÆŸ¥/ö€$ì_Î¥º%Z¡I¼_f8Á¦ŸÙ€p¬k@h¶¢§çKý•a蟝.jAj¦Yñ¨?ê˜ÒÁÉ=kfY`”ãÞ”iö#“²—=.Ãå¨cÂcä[IŸ¥4øÀg‹Y nÈ ×­ÒÈt ùRö”û-KnbÂU+–ÊL})â©ûYIבŠßفÑ?*C ™<•§í)[`å©ÜçÏŠ®?çÊL} (ñ-Ù['?JÞÛf£oåH ˜þ%©UaÕ%Nç:|O}ÐY?§4ÂE~à‘fx䌞k¡-i¼´žm #çZZ}†©Ï¹ÎŸê$dY7âiãYÔ˜qkÿ?Þ3Úãï¯éGŸmÙ…/m峝þ#š}oV}‹‘îi§XÕñ‘f?æºSqmëÏÒ›ö›a“¸Â—µa:rî`ÝZáv¼r=ê«ØÜ, yé]9¹ƒÕ¿#Hn õoûäÑí­²Jú6p ¢ÞºÈJ“œàÔØCøOOJô?>GÇû¦›öˆð¿ýò¯ëO±ÂÛ3‚A¸.8üÇÿ?ZèW #„ŠïŒÑô 'ýðßáLóS´Rÿ?߇‹o ½‡™À¯‡®‰R;óRI ݱ?(?NõÜùƒC/ýòiòq)ÿ?€š—‰ctuÜá—Ãw›ÛÇÒ›&ƒy'ʁìkº.ç [ˏ÷i7KÓì²þU?Yaì¼Î?Oðõĉ\}Óœbº¥ÎÑŸOJ—÷ý¬Ÿ¥&nçÑ¿:ÎU\ÙJÜéñïõ¥'Ò˜ŒÒîcÆ¹±ù?u ‘Ú˜uÍ.åÏ [ÏäQø~”Íù<ùÒîIÈ#ëL ?ëÖ—<Œ‘Q«Ž™£x( \Ó³ïP‡'ó¥(E1^ÄÊÇ”gÐþ••p?J<èÁÎáøš,,÷ ñÞ«‹„î—íQgï va¡dàRƒUMÜCãó£íŒ|ãó¢ÌY=iÙæ©ýº.~n>´ BõŽV —sÛ±¥ôªþ,Œ~4ïíÉàSå}‚轚\ôªÚ ýÒi?´÷M.FÈÐÏOOzQÒ³þßþË~T}¿ýƒšjì7$hŠZÎû{Ï3ùPoßû†—$…̍š\Ö`¿sü}¾LýÏåOÙÈ|ÈÔϽ¬Ã}.~í'ÛfëŠ=œƒÞØÜÍ9)´¡9õ¤·øê€}jA}.;{r(ûlÇ¡j3DÞ#>ɨ})~Åÿ?=VöÉNFáùÒýªl}áNÓÄgØoyýòҍ>÷<δ¿k˜ÿ?#ëA¹˜™çK– ^" :ë<ÜRÿ?g\ÏÍq+ùœQçÍýóO–aÌ…dÝîMÙRw¹oΛæËŸõ†2SÖCõ£’ȧÿ?e7üü=Ù#?ëäüê3#ÿ?ÏCI¾N˜Ô{9÷:&þÉNó¾>´¿Ù1w•ÿ?:ƒ{ñ—lÒnlýö4ýœû™ÿ?e@y2?çGöU·üôûê ËãjC“Õšg.áÌ‹?Ù–€ýæÿ?¾©›gê節߫~t1Ôþt{9wdYþϲsÿ?}Pll»ÿ?ª@Çΐã=çG³}Ù͕€Ú?3H-,2‹úÕCÛõ¤ zqG²}ÁÍv.}—O>ZR4ÿ?ùååU”˜û¢dû˜µåX‘ÇùQ²ÄõQþUL…ÏÝ•/÷GåG³óeØ·‹ÿ?,£ÿ?¾E!6C¢Gÿ?|ЦBá•& ü¨ö^bçò.²„ðZi–ÌòGÿ?|ЍvžŠ)¤J^Ë̈{AŸ•?ÿ?vš.í6älÇÒ¨È~SQÇźã®(ö~bç4>ÙjðçéHomçn~•“4¾PCÏ=j#z™èÝ3OØù’êyúÛIó^”Ïïó¦ä¼U žØ£• 6<XeØþ4c ç>¼ô¦8äqê{S·”r…Êïw»).vðNMN%ˆËrGMÕI­4§<¹$`ýi¯bÍ %òpjÔ<ìÐEÏ9õæƒ<@rG' ª1Ú]›—hœõ§-ÞØñôª²wbË]@&HÆÒ[<ŠuÍÊÀÑ…E&LãÛU-6H§z?œT·1$þY,»œf•]¤Hn2 EÞW={TM|áã@ƒsO¥8ƸOލê0iQ R„¸%s×ޝkÜšK†RŠ n¸ôªó_Ka‚@È©wÁ½‰dŒg=*$¡ ù¹ïבBC¸O¨4V»—³ëÐVŒRo[ÔVyE69Rrja{lˆH ?íp¿v_ÝÞ‚sÞ©ÿ?hÛŽ²ûšOí+cɐRåes"îzÒæ³Î©l3óÒ ZÛ jXs#K=ª½ó¸µb™ÝÇJ«ý¯mÓu#jc'ð§ÊÁÉ1i`,HcòŽ =/fl|˜¦RŸžÝ)?´aÆ<£ëҝŸa]=ì œ/NƒÖ™%ÌíÈ ‘Qÿ?iÇÇîýóAÕã÷Göhå}ƒ™w-oeòY³¼ÓIÆBô95ö§a#ýÚ?µ´GJ9Xù“êMr$rÀ€O7›;© ㊇ûNCÿ?,¿J§)þ |¬\È”5Ê[‘ƒºš~ÒÑíryª3©ÏŸõti\qò 9Xs.æ­¶V¨6xëÍbh\tSEýÏ ¥ÈÇ̍ÜóÖŒÖÛîˆàŠO¶Ýâr0çFî{æŒÖ ¼ºççZCuuŸ¾(öl9ÕÍíߝ.áë\ñ¸¹ ~ðQçÜùkúSäaÎŽƒw…Ç\×=æÜw—·¥I±þ´Òöl9ô: ã¹…ÀçŒ×?¾\ÿ?­?•!2|ÖÅÌ9΀ºñ–†Tîsç•¿ L7üôj~Ì=¡Ðy¨ßyɏ¼+ž*qË·4›xÆ÷üé{0S:>näæöë$\zÐ.T@Üži{sÀ4ì6JnnøýâýiMÍÉ?ëJ„7¯ÓšRyÈ9=è°6Ç™îy>wÐb”IsÔÌOáQ?ýTðÜc==ê¬$õÔp’|s;Ô1”õ¿M݁ŽqO …¨°Ã÷½|÷??6reûêà*PxëÒ˜\Pž¬çþiv½ÿ?}Rd‚š$9ÎïÌÑåFN1úš2GB PÜ{šbÒú‹åÇÇÊ:RùiýÚMõ(9'Ž(»ã(?*pXÿ?º¿•78 7Q@ü‡as÷@ü)@û£ò¤ÝœQž1úÐÆ1Ð 8üi¹ÎsùQœŒP1àäQÍ4Û8£=¨Ž8Í/ÍÜÒ÷ Hxã¥.j0irGցÜ~A¥¦dçƒKž>” >âîç­.i‡œÑšrLŠJo”æ(ìóÖƒMÏ4g?ìÒgž´™É¤ã4ã³€hÏ4Ò}hÏ© ]GdRf›Ÿ›éFz÷ .)4gŠn}Eã4Å'™ïIלÐ-Å÷£üŠiý)3ƒÏZLc‰„ò) ÏçM͸â{SzšBi;Ð+ÝØ\ûÒøRÇ4Ó“H–8°Á¤$S{cÚŽ‚ˆOzLÿ?*NÜàRÄðE4žÙ£¹Í4ûšApïMÎ}±HrrM!9#©£Rn»õÜóéõ£”ƒ®(`†– ã4œî¥$Ž)¤“žžÔ¶'qX‘ßð¦÷¥9õÏ5<àçZ^b’A曃þM»u¦o÷4„Ý·,äŽsÖœ'ž§¸¦/UúšA÷¿Vˆm–3Œc¯ÒŒãtÑÐÓŸ úRoRÛ}ï”®:JAßê?­µP£ª¸ðqýhÝ–4ÕëøÐÿ?êÓð¥±RÑØ~qÓóKœûToþ¬~4åûÃè*‰¾£ÁÀ¥'Ž?ýTÑþ4­üT\®—u÷¥ï‘øÒá¥î>”ÜPF})zÓ8õ?QL¸îþô¸úSGOƤÿ?–ƒëý(¿n)AÁ4Ñþ*ßJ7ì?Œþ”A?ãšSÐ}i×ó ²z㨦¼>ŸÖž>é¦$î;9ÉÒƒQŸ»R»BZµ<ö œsMÃþ}iÝÏÖ’ôaÀ¥É?JO_­'jvƒ‡¦x§g=i¢÷Oã@â8õ¥sLo»øS…&ÀQÞŒö ÷úQ@õ/­7üiGZßéIšCÐRŽ¿?ò£<ÐzÓOS@7aG4gž!íøÐ>ðúP‹ÐsIHÔ¿Â~´lEÎM6”t¦Ž†€lRqŠNô‡µ9~÷á@'q3Á£´ŸãCv&Ú<“ßéLn}jC×ñ ýáõ(¯´“ŸÒŒ7ù1ûõ%Ì›YhÿÙ
How can I make that display as an image, and not as a text?
User avatar
Skara
Forum Regular
Posts: 703
Joined: Sat Mar 12, 2005 7:13 pm
Location: US

Re: Returning a BLOB image

Post by Skara »

3- If I echo $jpg before the decoding, it will return lots, lots, LOTS of letters, numbers, symbols and weird stuff:
You're ALMOST right!

Code: Select all

header('Content-Type: image/jpeg');
echo $jpg;
If that still doesn't work, there's a problem with your webserver not liking php files as other file types.
Gouveia
Forum Newbie
Posts: 19
Joined: Mon Apr 27, 2009 3:55 pm
Location: Brazil

Re: Returning a BLOB image

Post by Gouveia »

Well, I did that, and all that it returned was the address of the website. Could that be a problem because I'm running tests on a localhost (127.0.0.1)? Do you think that it will behave any better if I try to run it on the server?

Here's the code after the modifications:

Code: Select all

<?php
    
    include 'connect.os.php';
    
    $id = $_GET["id"];
    
    $sSQL = "SELECT imagem FROM osfoto WHERE oscodigo = $id";
    $result = mysql_query($sSQL);
    $row = mysql_fetch_array($result);
    $jpg = $row["imagem"];
    header('Content-Type: image/jpeg');
    echo $jpg;
 
?>
EDIT: Tested it at the same server, still doesn't work.
User avatar
Skara
Forum Regular
Posts: 703
Joined: Sat Mar 12, 2005 7:13 pm
Location: US

Re: Returning a BLOB image

Post by Skara »

If all you get is the url, then there's more than likely something being printed to the screen before you're echoing $jpg.
Try commenting out:

Code: Select all

#    header('Content-Type: image/jpeg');
#    echo $jpg;
And see what comes up. If anything comes up, see that it doesn't.
If you get a blank page, try (with the two jpeg lines still commented out):

Code: Select all

   $result = mysql_query($sSQL) or die(mysql_error());
    $row = mysql_fetch_array($result) or die(mysql_error());
And see if you get any results then.

On another note, I'm assuming connect.os.php simply connects to the mysql database. Don't forget you need to close that connection with mysql_close() at the end of the file. ;)

Edit: Another idea... I just realized you had png before. If that's what the BLOB is, change it to Content-Type image/png. My bad.
Gouveia
Forum Newbie
Posts: 19
Joined: Mon Apr 27, 2009 3:55 pm
Location: Brazil

Re: Returning a BLOB image

Post by Gouveia »

Yes, the connect.os.php file is just a file with all the info from our server to connect to the website.

After doing your modifications, I still can't display the image. When I change the file type to png, it says that the image has errors and cannot be displayed. If I just comment those lines, it won't show anything on the page.

Weird, I thout it wouldn't be so complicated :(
Gouveia
Forum Newbie
Posts: 19
Joined: Mon Apr 27, 2009 3:55 pm
Location: Brazil

Re: Returning a BLOB image

Post by Gouveia »

I looked into google for some other code and I found this one:

Code: Select all

<?php
    
    ini_set ("display_errors", "1");
    error_reporting(E_ALL);
    
    $id = $_GET['id'];
    
    if(($id != "") && ($id == $_GET['id'])) {
    
        require_once('connect.os.php');
    
        $sql = "SELECT * FROM osfoto WHERE oscodigo = '$id'";
     
        $result = mysqli_query("$sql")
            or die("Invalid query: " . mysqli_error());
     
        header("Content-type: image/jpeg");
        $im =  imagecreatefromstring(mysql_result($result, 0));
        imagejpeg($im);
        imagedestroy($im);
 
        mysql_close($link);
    }
    else {
        echo 'O ID é inválido';
    }
    
?>
But now this is what is returned to me:

Code: Select all

 
Warning: mysqli_query() expects at least 2 parameters, 1 given in D:\Meus documentos\Desktop\Arquivos\EasyPHP 3.0\www\webos\thumbnail.php on line 14
 
Warning: mysqli_error() expects exactly 1 parameter, 0 given in D:\Meus documentos\Desktop\Arquivos\EasyPHP 3.0\www\webos\thumbnail.php on line 15
Invalid query:
:(
User avatar
flying_circus
Forum Regular
Posts: 732
Joined: Wed Mar 05, 2008 10:23 pm
Location: Sunriver, OR

Re: Returning a BLOB image

Post by flying_circus »

I cant fix your code because I can't see all of it. Those warnings indicate you have not supplied enough parameters to the method.

If you look at your code on lines 14 and 15 you'll need to modify it as follows, where the $link variable is your database connection defined in connect.os.php

Code: Select all

$result = mysqli_query($link, "$sql")
or die("Invalid query: " . mysqli_error($link));
Edit: Please also note that in your original example, you are using the mysql extension. The new code example uses the mysqli extention. So an alternative would be to convert the new code to the older extension as follows:

Code: Select all

$result = mysql_query("$sql")
or die("Invalid query: " . mysql_error());
Gouveia
Forum Newbie
Posts: 19
Joined: Mon Apr 27, 2009 3:55 pm
Location: Brazil

Re: Returning a BLOB image

Post by Gouveia »

...And that leads me to the problem of the page showing only its URL.

I really don't know what would be the problem. Every example I try to do shows that, and I just don't know what can be done about it.
Gouveia
Forum Newbie
Posts: 19
Joined: Mon Apr 27, 2009 3:55 pm
Location: Brazil

Re: Returning a BLOB image

Post by Gouveia »

Well... I got something different now. I get that download pop-up when I execute the page. At least now it gives me the "broken image" icon on the html page.

Here's the code:

Code: Select all

<?php
 
    if (empty($_GET['id']) || !is_numeric($_GET['id'])) {
        echo 'A valid image file id is required to display the image file.';
        exit;
    }
 
    $imageId = $_GET['id'];
 
    if ($conn = mysqli_connect('IP', 'root','password', 'database')) {
        $content = mysqli_real_escape_string($conn);
        $sql = "SELECT imagem FROM osfoto where oscodigo = {$imageId}";
 
        if ($rs = mysqli_query($conn, $sql)) {
            $imageData = mysqli_fetch_array($rs, MYSQLI_ASSOC);
            mysqli_free_result($rs);
        } else {
            echo "Error: Could not get data from mysql database. Please try again.";
        }
        mysqli_close($conn);
 
    } else {
        echo "Error: Could not connect to mysql database. Please try again.";
    }   
 
    if (!empty($imageData)) {
        header("Content-type: jpeg");
        echo $imageData['imagem'];
    }
?>
Last edited by Gouveia on Fri Jul 17, 2009 7:26 am, edited 1 time in total.
User avatar
Benjamin
Site Administrator
Posts: 6935
Joined: Sun May 19, 2002 10:24 pm

Re: Returning a BLOB image

Post by Benjamin »

Storing images in the database is not the proper way to build your system. Only the path to the image should be stored in the database.
Gouveia
Forum Newbie
Posts: 19
Joined: Mon Apr 27, 2009 3:55 pm
Location: Brazil

Re: Returning a BLOB image

Post by Gouveia »

I know that it isn't the proper way, that's why I'm trying to retrieve them in PHP so I can undo the mistakes of the database. We have almost 10 years of images regarding problems from costumers that we need to store, and since then we store them in that blob field. My mission is to do it, but I gotta do it in PHP.
User avatar
Benjamin
Site Administrator
Posts: 6935
Joined: Sun May 19, 2002 10:24 pm

Re: Returning a BLOB image

Post by Benjamin »

This code will copy all the images to the file system. The oscodigo field will become the file name.

Code: Select all

 
$sSQL = ;
$result = mysql_query("SELECT imagem, oscodigo FROM osfoto");
while ($data = mysql_fetch_array($result)) {
    file_put_contents("/path/to/images/{$data['oscodigo']}.jpg", $data['imagem']);
}
 
Are you sure the images are being base64_encoded when they are saved to the database? BLOB fields accept binary data, so there is no reason to encode it, hence there is no reason to decode it either.
Post Reply