【问题标题】:How to binding image to repeater control from sql server image field in asp.net? [closed]如何从asp.net中的sql server图像字段将图像绑定到转发器控件? [关闭]
【发布时间】:2013-01-01 07:31:36
【问题描述】:

我将图像直接存储到数据库中。现在我想将转发器控件绑定到数据库的图像字段。我想从数据库中加载所有图像。

【问题讨论】:

  • 到目前为止你做了什么?

标签: asp.net


【解决方案1】:

嗨 Nimesh,您可以使用以下方式从字节数组创建图像并绑定到 repetor

<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "BookName") %>
<hr>
<%# DataBinder.Eval(Container.DataItem, "BookDescription") %>
<td width="100px">
<p align="left">
 <img src= '<%# GetImageFromByte(DataBinder.Eval(Container.DataItem, "Image")) %>'  
 alt="" style="height:200px;width:200px;border:1px solid gray;"/>
</td>
</p>

//////////////////////// ////////////////////////////    
call  GetImageFromByte  this function from aspx as shown above and convert byte array to image and save in folder then return complete image path 

public string GetImageFromByte(object byt)
 {
  byte[] byts = Convert.ToByte(byt);
  return byteArrayToImage(byts);
}

private string byteArrayToImage(byte[] byteArrayIn)
{
  System.Drawing.Image newImage;
  string strFileName = "Filder path where image need to store " + "yourfilename.gif";
  if (byteArrayIn != null)
   {
    using (MemoryStream stream = new MemoryStream(byteArrayIn))
     {
       newImage = System.Drawing.Image.FromStream(stream);
       newImage.Save(strFileName);
       img.Attributes.Add("src", strFileName);
     }
   lblMessage.Text = "The image conversion was successful.";
  }
  else
  {
    Response.Write("No image data found!");
  }
     return "Filder path where image need to store " + "yourfilename.gif";
 }

【讨论】:

  • 感谢 rahul.deshmukh
  • 如果同时处理多个请求并且它们都试图写入同一个文件怎么办?
【解决方案2】:

在 asp.net 中传递包含图像的字节流不是正确的方法。
显示图像的最佳方式是将图像保存在服务器上,并且只传递图像的链接(例如使用asp:Image 控件)...

我猜你有两个选择:

  1. 重构应用程序以将图像保存在硬盘上,并且仅将图像的 URL 作为文本字段存储在数据库中。

  2. 当您收到请求并想要显示图像时,将图像保存到服务器上的临时目录,然后将该临时图像文件的 URL 传递给客户端。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-12
    • 2020-11-25
    • 1970-01-01
    • 2015-01-10
    • 1970-01-01
    • 2011-10-16
    • 2017-07-02
    • 1970-01-01
    相关资源
    最近更新 更多