VarBinary到图像网址

时间:2014-02-03 05:38:30

标签: c# asp.net

我正在将base64图像转换为byte[]并将其存储在SQL Server的varbinary列中。我想从数据库中获取图像并将其设置为ASP.NET image的图像URL。

我该怎么做?

将图像写入数据库的代码:

 string str= myBase64.Value.Substring(17);
 byte[] myByte = Convert.FromBase64String(str);

2 个答案:

答案 0 :(得分:3)

尝试这样的事情

<img src="GetBinary.aspx?id=123" />

<asp:Image ID="img" runat="server" ImageUrl="GetBinary.aspx?id=123" />

然后在GetBinary page_load中(或者如果是MVC,则使用返回null的操作)。

//resp is HttpResponseBase or just use Response.

resp.AddHeader("content-disposition", "attachment;filename=" + fileName);
resp.BinaryWrite(myByte);
resp.Flush();
resp.End();

编辑:这是ASHX版本

<%@ WebHandler Language="C#" 
    CodeBehind="AssetHandler.ashx.cs" Class="NameSpace.AssetHandler" %>


//-- codebehind
public class AssetHandler : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        // place response code here using context.Response
    }

}

答案 1 :(得分:2)

如果图像很小,请查看data URI。您可以将图像数据放入链接本身。如果您有byte[],请在其上使用Convert.ToBase64String。根据规格格式化URI,瞧,这是图像。但就像我说的那样,请注意规格,大小限制,older browsers等。对于小图标等,我肯定会使用数据URI。