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

uwopmtnx  于 2023-03-04  发布在  .NET
关注(0)|答案(2)|浏览(129)

我已经使用了sql server 2008的filestream来存储图像.我想重新获取图像并绑定到图像控件.但是没有得到正确的路径.请帮助.

vltsax25

vltsax251#

我相信filestream列类型与binary列非常相似,只是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。如果使用Reader,则需要添加读取行的逻辑。
你最后会这样称呼这个图像:

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

乔希

qrjkbowd

qrjkbowd2#

你可以写一个页面:

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

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

**编辑:**下面是专门针对FILESTREAM的一些示例:

相关问题