繁体   English   中英

从SQL Server检索图像以在ASP.NET应用程序中显示

[英]Retrieve an image from SQL Server to show it in an ASP.NET app

我想从SQL Server检索图像以在ASP.NET应用程序中显示它。 我认为我可以将从SQL Server检索到的图像记录到服务器的文件夹中,并显示其抛出的路径。 还有其他更好的方法吗?

音频和视频文件存在相同的问题(我可以使用Silverlight播放这些音频和视频文件吗?)

我担心的是,我不想将这些文件(图像,音频和视频)存储在服务器上进行显示。

您可以编写一个自定义HTTP处理程序,该处理程序将获取要在查询字符串参数上显示的项目的ID。

然后,此处理程序将从SQL Server中检索数据,并像下载文件一样返回它。 这篇文章有步骤。

我不确定“文件”中的Silverlight流功能,您可能需要使用Silverlight流服务

大家好,我想下面的链接中提供了解决方案:

http://www.codeproject.com/KB/aspnet/asp_net_and_mysql.aspx

http://www.codeproject.com/KB/aspnet/image_asp.aspx

该解决方案适用于mysql数据库,也可以适当修改以与mssql数据库一起使用。

有没有更好的办法? 恕我直言,是的。 将图像文件存储为文件。 这就是文件系统的用途,并且您无需参与数据库的摸索。

过去,我曾经使用MySQL来存储图像并通过PHP检索它们,但是从维护的角度来看,该解决方案确实过时了。 归结为这样一个事实,您总是必须以某种方式存储数据,而最有效的方法也是最简单的方法。

如果必须将其存储在数据库中,我将使用一个通用的访问器页面(例如myImage.aspx)来查询数据库并将返回的Blob直接流式传输到浏览器。 然后,您的img标签可能需要看起来像

<img src="/img/myImage.aspx?imgId=123456" <other tag data> />

如果使用SQL Server 2008,我相信您可以将这些对象存储为FILESTREAM,然后可以检索文件系统上文件的路径。 您应该能够安排该路径通过IIS进行映射,因此将其转换为URL应该很实用。

您的图片来源可以是

<img src="blah.aspx?id=123" />

在blah.aspx中,从数据库中检索图像数据,并使用Response.BinaryWrite将其设置为适当的内容类型后发送到浏览器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM