如何在php / mysql中显示来自数据库的图像。如果使用C#/ Vb.net在db中插入图像

时间:2015-01-08 09:18:35

标签: php mysql

我有两个应用程序,一个是桌面,另一个是Web应用程序。

我们使用带有c#.net / mysql(mysql中的blob数据类型)的桌面应用程序将图像存储在db中,因为图像是由签名设备捕获的。

我想在Web应用程序中显示该图像,但它不起作用。我正在使用

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

警告:imagecreatefromstring():

中的数据不是可识别的格式

这就是我在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)

这是Db中的数据


ÿØÿàJFIFÿÛC

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

2 !!22222222222222222222222222222222222222222222222222ÿÀdú“ÿÄ
ÿÄμ}!1AQa“q2'¡#B±ÁRÑð$ 3br, %放大器;'()* 456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ“...†‡‰S”‘’•--~™的¢¤£¥|§¨©ª²³'μ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ
ÿÄμw!1AQaq“2B”¡#3RðbrÑ $ 4A%N&放大器;'()的 56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz,ƒ“...†‡‰S'‘’•--~™的¢¤£¥|§¨©ª²³'μ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚâãäåæçèéêòóôõö÷ øùúÿÚ? ÷U(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ Žyáμ,î%H¡K&lt;'0UP:'OTŽ£> n%“&lt;Ží²(cyœôUÏØIk: &安培; CRZ; YT£ð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>|
QN œrNI$³TÔ¥†htûI5€JA!AÖGÇðŒ€V $ 9 “MOS” 8A ™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“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ž¹ü”É&amp;' ëŸÿ“ãÃòÜëv-SϽóýaaaÿl¥ÿÿN9£ø5ø·μÖ.ýÏ/HºÚÿG1”ǹl{ÐAYº-³Œ©kOw¨J7Eiþó'ûGè2p
üTz·Ì=ÔôR«=Ó^ |8Ï·ï? ÓÓt> M *'[dc $§tÓHÅ䙿¼ìy'ù|ηQÔÞ9u]€GŸ.ÝðGž{±åjQEQESþ-ííž>d¿ënu[=ƒ×Ë•goür'®,¹ø¿âoâù&amp; ëk£)...Ú¹'AcÿŒ¨Ïý4aÚº  (¢(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠÀ×Õ5+ )“ãk<â€/ /þÇî«Ž¸à €?¾:&gt;» - ;Ý:Úfn'Š:±ö5“¥ç‰b [MåμÓdæ=5FÆ•;Éù¹&gt;XÀ!·vÑÓμ)5K‰&amp;·³mŠsÖvÏÞOö@ <¨àÚT€Pª`Ú- € (¢€ «©jiz |×-¼¸ÇÝQ-rN¨îÄ«H«]MsöŸñ=×ST6™iK2Ý&amp;•Í* @ *·}ÏŽ$ׇ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€Ï> NN〜ÐQ@šo‡' &amp;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 ©小时秒(S(S(S(S(S(S(S(S(S(S(S(S(¸¾2Õ小于5«øoMÓ...¸MbèÛM+¡GEAC†ã÷(¢€; 3F°ÒO±Û...'S™fr ^ YO«»e〜ýM¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠÿÙ)

1 个答案:

答案 0 :(得分:0)

首先,从桌面应用程序中某处上传图像并将文件位置保存到数据库可能更为明智。

如果你真的想坚持当前的实现,你应该制作一个php文件来显示图像,例如image.php

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

编辑:

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

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

并像

一样使用它
echo '<img src="image.php?id=x"/>'