如何将保存在文件流数据库sql server 2008中的图像绑定到图像控件
问题描述:
我已经使用sql server 2008的filestream来存储图像。我想回顾一下这个图像,并绑定到图像控制,但没有得到正确的路径。 请帮忙。如何将保存在文件流数据库sql server 2008中的图像绑定到图像控件
答
,你可以写一个网页,其中:
- 接收该图像ID作为查询字符串参数
- 从你的数据库中的图像二进制
- 正确设置
Response.ContentType
- 写那些二进制数据使用
Response.BinaryWrite
或类似
你可以得到一些关键点通过阅读这篇文章:具体下面一些例子来FILESTREAM:Creating Thumbnail Images on the fly with ASP.Net
编辑
答
相信FILESTREAM列类型非常相似,一个二进制列,但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="" />
乔希