如何从Asp.Net中的二进制数据加载图像?

时间:2011-12-12 07:33:43

标签: c# asp.net image

我是.net技术的初学者。我正在使用VS2008,C#,Asp.Net 3.5 Framework,SQL SERVER 2005.在数据库表'Cust_M_Tbl'中,有一个varchar(500)类型的字段viz Cust_Image。 Cust_Image中的值是

mspZVnmQlz1GgRRpQEqBFGTHeUELiUhxQQ2GQU9BF3DCUYEeaiJJAQQLKGCBDYcySMENDi9qgQWJv0xBEe8sWkEEDr19QQWMxVoBE20odAEGFDtZAQeBtUtBDn7NUkEd0ytIAQl/r4WBBooWTAEHiCSGAQiMyjEBCFG+KYELYSoowQzluisBBt1NTwEYSM4hgQ5LTTpBD0e5KUEGYa0ugQxqoCLBCWgZKcEKcJJZQQ2DM1nBBAszVoEHiQMSZGhtcwEGCgwPExQUExMUFAMSYmVqcHUECQsOEBMTEhITFAISZWVobnUDCA0PERMVFRQUFRUDEWBjaG5yAQYLDg8REREREQISamlqb3UFCQ0PEhMUFRUWFhYDEV9hZmxxdQMJDQ4PEBEREQIRa2xucXcGCg0PEhMVFhgZGQQRY2ZpbXIBBgsNDxASExQDEHJzdgMHDA0PEBMVFxgZBBFiY2ZpbnMDCQsNDxIVFwMPc3YDBgkNDQ4PExQWGAQRXl9hY2ZqcwQIDBATFxgEDgQHCgwPDQ8PEhMVAxFXWFlcXV9hbXYFCxIWGRoGDA0ODwsODxMDEFVXV1dVVltkcwYOFhodAAD/Aw1PUVFQTk5RV2YKEQAA/wQMR0VFR0ZJQz0xAAD/BQdCQkMY8B0ZtKlQFCF/MssEMp7YkXe5scQP8fmd96ZVrvO8oGFXhoDAjEe5o+U/XAnxKOTp9vDgoSTOH22Eg2rytkcs9uqvFV7GSeUaetGWD0jVWeSqCuD6Sb6l/KxsWXbH1iDoY8LJhgKhkvVBei3Xmp4gx74bl58QiXckdX0KgxJhDWSa/zDvZvGfSVKVLvXzhv8/A+3tV1M36hSdkpPukozfqJj4O9ELUHNNUj8SRvFr0do7bU6tXqEbVubYYiVnalpHbCb07QoVPsO402Lwu3d9vnk6+bnZ/zbgpmAm4zfCLQrlOseeQ4XOarfqeCA14qS2EWZxATfilss++PYY+xymdxgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGA==

我想在我的网页中显示此客户图片。我该怎么做?我应该解密吗?或者它是以任何其他格式?任何帮助将不胜感激。的问候,

2 个答案:

答案 0 :(得分:1)

解码为@Christophe Geers建议 使用

string encodedString = "your image data encoded as base 64 char array";
byte[] data = Convert.FromBase64String(encodedString);

Response.BinaryWrite(data);

也许这可以帮助更多: http://odetocode.com/articles/172.aspx

答案 1 :(得分:0)

这看起来像Base64 encoding。你可以在这里找到一个在线解码器:

http://en.wikipedia.org/wiki/Base64

它将您的输入验证为有效的Base-64字符数组。

您可以通过以下方式解码C#中的base64字符串:

string encodedString = "your image data encoded as base 64 char array";
byte[] data = Convert.FromBase64String(encodedString);

有关详细信息,请查看MSDN上的FromBase64String文章。

现在要在ASP.NET网页(* .ASPX)上显示图像。

E.g:

<img src="myimage.jpg" />

不是引用实际的图像文件(例如:myimage.jpg),而是想引用一个ASP.NET处理程序(* .ASHX)来处理图像的字节(在前一个名为data的byte []数组中代码示例)。

E.g:

<img src="ImageHandler.ashx" />

图像处理程序的代码如下所示:

public class ImageHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        // Load the image (see previous code sample)
        byte[] data = ...;

        // Display the image
        context.Response.OutputStream.Write(data, 0, data.Length);
        context.Response.ContentType = "image/JPEG";
    }
}

Read more about implementing an IHttpHandler on MSDN

您需要将标识符传递给imagehandler.ashx页面,以便您知道要检索的图像。

E.g:

<img src="ImageHandler.ashx?id=<%=id%>" />

将其替换为img-tag或ASP.NET图像控件。