如何将文件流数据库sql server 2008中保存的图像绑定到图像控件

时间:2010-01-06 12:51:42

标签: asp.net

我使用sql server 2008的文件流来存储图像。我想要检索该图像并绑定到图像控件。但是没有获得正确的路径。 请帮忙。

2 个答案:

答案 0 :(得分:0)

你可以写一个页面:

  • 将该图片ID作为查询字符串参数
  • 接收
  • 从数据库中获取该图像二进制文件
  • 正确设置Response.ContentType
  • 使用Response.BinaryWrite或类似的
  • 编写这些二进制数据

通过阅读本文,您可以获得某些关键点的信息:Creating Thumbnail Images on the fly with ASP.Net

编辑:这里有一些专门针对FILESTREAM的例子:

答案 1 :(得分:0)

我认为文件流列类型与二进制列非常相似,但SQL Server将其存储在文件系统而不是实际的SQL数据库文件中。在任何情况下,您都需要使用某种中间组件来读取二进制数据并将内容作为响应输出。

执行此操作的一种方法是使用HTTPHandler,您可以使用一些数据来识别要提取的记录:

public void ProcessRequest (HttpContext context) {
    // Add some sort of validation if need be
    var id = context.Request.QueryString["ImageID"]))

    // Pull your data here based on that information
    var dataObject = GetDataObject(id);

    context.Response.ContentType = "image/png";  // or the applicable mime content type
    context.Response.BinaryWrite((byte[])dataObject[0]["ImageFile"]);
}

这是一个简短的示例,您需要确保自己有逻辑来提取DataTable或DataReader等。此示例假定您有一个DataTable。使用阅读器,您需要添加逻辑来读取行。

你最终会像这样调用图像:

<img src="/imagehandler.ashx?ImageID=345" alt="" />

约什

相关问题