在ASP.NET中显示图像

时间:2011-02-25 21:22:23

标签: asp.net asp.net-mvc

如何从MYSQL数据库中检索图像。

要在文本框中显示文字,我们使用textbox.TEXT - >我们使用.TEXT来显示文本

同样如何显示从MYSQL数据库中检索的图像?

Image1。[ _ __ ] = dr [0]。[ _ ____ ];

在上面的空白中填写什么?...

我用blob存储图像。

2 个答案:

答案 0 :(得分:2)

你可以通过创建一个控制器来提供你的图像,然后在你的视图中你可以直接添加调用:

<img src='<%= Url.Action( "GetImage", "Image", new { id = yourImageIdHere } ) %>' /> 

public class ImageController
{
    public ActionResult GetImage(int id)
    {
        var image = GetTheRawBinaryImageFromTheDB();
        return File(image, "image/jpg" );
    }
 } 

答案 1 :(得分:1)

向Web窗体应用程序添加通用处理程序,在ProcessRequest方法中,您需要在数据库中查询相关的文件/二进制数据。您通常会通过查询字符串选择正确的图像。以下代码显示了如何查询数据库并返回二进制数据:

using (DbConnection conn = new DbConnection(connect))
{
  if (context.Request.QueryString["id"] != null)
  {
    DbCommand cmd = new DbCommand(qry, conn);
    cmd.Parameters.AddWithValue("", context.Request.QueryString["id"]);
    conn.Open();
    using (DbDataReader rdr = cmd.ExecuteReader())
    {
      if (rdr.HasRows)
      {
        rdr.Read();
        context.Response.AddHeader("content-disposition", "attachment; filename=" + rdr["FileName"]);
        context.Response.ContentType = rdr["MimeType"].ToString();
        context.Response.BinaryWrite((byte[])rdr["Blob"]);
      }
    }
  }
}

您需要将DbConnection,DbCommand和DbDataReader更改为您的提供者喜欢的类型(Odbc或MySql),然后将Image控件的ImageUrl属性指向HttpHandler:

Image1.ImageUrl =“MyHandler.ashx?id =”+无论图像ID是什么。