0

I have Two application one is desktop and other one is web application.

we are storing image in db using desktop application with c#.net/mysql (blob data type in mysql) as images is capture by signature device.

i want to show that image in web application but its not working. i am using

   $im = imagecreatefromstring($data);
   if ($im !== false) {
     header('Content-Type: image/png');
     imagepng($im);
     imagedestroy($im);
 }
 else {
    echo 'An error occurred.';
 }

Warning: imagecreatefromstring(): Data is not in a recognized format in

This is how i am saving in DB @

Dim myimage As Image
Dim fileName As String = "c:\img.jpg"
myimage.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg)

Dim imgBytes() As Byte = Nothing
Dim uFileInfo As New IO.FileInfo(fileName)
Dim uFileLength As Long = uFileInfo.Length
Dim uFstream As New FileStream(fileName, FileMode.Open, FileAccess.Read)
Dim uBinaryReader As New BinaryReader(uFstream)
imgBytes = uBinaryReader.ReadBytes(Convert.ToInt32(uFileLength))


Dim Cmd As New System.Data.Odbc.OdbcCommand("update tbl set Sign=? where ID='1', ConnectionString)
Dim param1 As System.Data.Odbc.OdbcParameter
param1 = New OdbcParameter("?", OdbcType.Binary)

param1.DbType = DbType.Binary
param1.Value = imgBytes
param1.Size = imgBytes.Length
Cmd.Parameters.Add(param1)

here is the data in Db


ÿØÿà JFIF ÿÛ C

$.' ",#(7),01444'9=82<.342ÿÛ C

2!!22222222222222222222222222222222222222222222222222ÿÀ d ú" ÿÄ
ÿÄ µ } !1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ
ÿÄ µ w !1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ? ÷ú(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ ŽyᵂIî%H¡K<’0UP:’O TŽ£›n%”<Ží²(cyœôUÏØ I k: &çRž;Ýt£ðXFÛ¡„ŽŒÇþZ?¹àvùˆÛwú¯Ë Øæÿ 1åháú¢pòãª{5ðOyójúæ§rßܵ¬£SþÈ„‡ÿ ¾ªî¥«›IÖÊÎÕïu]Ë6ÕEéºGè‹}IÁÀl¥ý«jœëZ›CkM.G„À¦HßðƒÔ ?á Òÿ çë\ÿ Áíïÿ £ÉÔ<=ûÕº¸Ô´µûñL<ˈûÊýdQÝ[-Ü1ÆÒ¨óøræÞ‹©î´Ë™V¥÷Éo#pªÍÕÑŽ–@$†ùwèÍÌω,R(tt9VAî)õÏéŸñ*ñ-î‘ÒÚé ý þéÜÈ=ƒ2?ÖSè+  Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ³õ=PXùpCÚ/çÈ‚Ø6c«1þÛ·A’@,Ö5),£ŽÞÍmFä”¶…º{»c¢.rOÐHÚ^šS#ÜÞÌÚ.åæIHýG8Q€3À iÚC[Üûûƒy¨ºí2•Ú‘)ꑯ;WêNIÀÃoõvûQÓ4ÅYõ|‚c¶øä#ô^­ì2Á5+ë‰ïWHÓ_eÓ&û‹Œ-c9 àð]ˆ!Aã‚N@Á½a§Ûi–¢ÞÖ=ˆ f$åVbyf'’O&€¦é±i°2«¼³JÛçžN^gþó~@ 8
¹EÏøËþ@–ßöÓô¶è+ŸÔâcâí3Oë Œm¨N;o9Ž9[ë5ÐP?â¯ôhô½N>'µÔ­£Sê“J°8>Ø“wÕG¥tÏøçåð&»0ûööRÜÆ}52!üA®‚€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ ¡«êcK³‘y÷2¸†Ú peôì:’{ Ojºî‘FÒHÁAff8 ¤Ö€©¹ñÒ÷+‹8ܨ·<¯™øfÿ €¯ðÐí3L6fK›™~ѨO>|
qÑ œrNI$³TÔ¥†htûI5€Jå!AÖGÇðŒ€V$9"MOS"8a‹íÓä[Ûƒ‚ØêÌ…F[¶@$š^˜lDÓÏ/ŸrC\OŒdŽŠ£øQyÀ÷$ä’Hšn›™nÈŽòË+™'žO¿3fü€ p *åPTõMF-+O’îUgÛ…H“ïJäáQ}É ­.£¨Ã¦Û‰e#»lŠÆ^g=GsÁö H š¥eawww¥¬,k4y6Ö‘¶ä·ÈÁbŠB Æ ÈI 4M:[i'¼e“Q»:éב»¿ì¨Â¦z“Z”Q@ÿ Žÿ äžx—þÁW_ú)« ®Ç?7€õèGßžÆ[xǫȥ~,ÀWA@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@6%¼!}m©{åÙHÿ óÍ'‘bgÿ €«–ü+GTÔ£ÒlLÆ6–BDp@Ÿzi ‹õõèIÀ¬ÝCͤÐ]F’[È…eIU”ŽAÏlW ¢_][M§«ÛjWÚtHÑiWpÛµÁò‰ I$iºBî»Fý¤mÊ–a@n‘¦Éh¯uzë6¥p¸˜tˆžˆ¹ ü“É&´ëŸÿ „ãà òÜëv–SϽóýšaÿ l¥Úÿ N9£þ5ø·µÖ.ýÏ/HºÚÿ G1„ǹl{ÐAYº–³Œ©kOw¨J7EiˆþóÂ'ûGè2p
üTz·Ì=ÔôR«=Ó^¦8Ï·ï? ÓÓt›M*'[dc$§tÓHÅ䙿¼ìy'ù¦Î·QÔÞ9u]€GŸ.ÝðGž{±åˆ jQE QE sþ-ýíž›d¿ënu[=ƒ×Ë•goür'®‚¹ø¿âoâù&ëk£)…Ú¹‘Acÿ Œ¨Ïý4aÚº (¢Š (¢Š (¢Š (¢Š (¢Š (¢Š (¢Š (¢Š (¢Š (¢Š À× Õ5+)" ãk‹â;À¤/þÇ¸­à€ €Ÿè¾>»–’;Ý:Úfn’Š:±ö5“¥ç‰b[­MåµÓdæ=5FÆ•;Éù¹>XÀ!·v ÑÓµ)5K‰&·³mŠsÖvÏÞOö@‹¨àÚT€Pª `Ú–€ (¢€ «©jiz|×—¼¸ÇÝQ–rN¨îÄ îH«]MsöŸñ=×ST6™iK2Ý&•Í*@ *·}ÏŽ$ׇ4ùôí4»öÙîn¶œ6F.Àà´{ZÔQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ï¬mµ+Gµº|MƒÃe ä2° «È ‚"±ÿ á÷-¯k†Ät´ûf1ÿ m€óÏ>²N˜ÐQ@šo‡´&fžÎÆ4¹q¶K§Ì“È?Û•²íø“ZtQ@Q@2i¢¶‚Iç•"†5.ò;UQÉ$ž‚¨êz柤´qÜÌMÌ£1[B¦I¥ÿ u$SŒäUkÍf÷íÚÄRÛÚÆÊmtÖ‘HsæK·!›=,«´½ Í⃅šêYJµï¶"/ýýß¿¾ U   ©h Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ¸ˆ¾2Õ<5«øoMÓ…¸MbèÛM+¡gˆeäç†ã÷(¢€; 3F°ÒO±Û…’S™fr^YO«»e˜ýM¢Š (¢Š (¢Š (¢Š (¢Š (¢Š (¢Š (¢Š ÿÙ

1 Answers1

0

First of all it might be smarter to upload the images somewhere from your desktop application and only save the file location to the database.

And if you really want to stick to the current implementation you should make a php file to show the image for example image.php

// database connection here
// get data from database where id = x 
echo '<img src="data:image/jpeg;base64,' . base64_encode($data) . '"/>'

EDIT:

header("Content-type: image/jpeg");
header("Content-Length: " . $filesize;

// database connection here
// get data from database where id = x 
echo $data;

and use it like

echo '<img src="image.php?id=x"/>'
Owain van Brakel
  • 3,109
  • 1
  • 15
  • 22