【问题标题】:Retrieve an image from SQL Server to show it in an ASP.NET app从 SQL Server 检索图像以在 ASP.NET 应用程序中显示它
【发布时间】:2010-10-26 10:46:03
【问题描述】:

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

我对音视频文件也有同样的问题(我可以使用silverlight播放这些音视频文件吗?)

我担心我不想将这些文件(图像、音频和视频)存储在服务器上以显示它。

【问题讨论】:

    标签: c# asp.net silverlight-2.0


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 但我对尺寸有疑问。从某种意义上说,我需要以固定的高度和宽度显示图像。谁能帮我解决这个问题
    【解决方案2】:

    你的图片来源可以是

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

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

    【讨论】:

      【解决方案3】:

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

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

      我不确定 Silverlight 从“文件”流式传输的功能,您可能需要使用 Silverlight Streaming Service

      【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        有没有更好的方法?恕我直言,是的。将图像文件存储为文件。这就是文件系统的用途,而且您不会参与到数据库的乱七八糟中。

        过去,我曾使用 MySQL 存储图像并使用 PHP 检索它们,但从维护的角度来看,该解决方案很快就过时了。归根结底,您总是需要以某种方式存储数据,而最有效的方式也是最简单的方式。

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

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

        【讨论】:

        • 这些图像将被抛出 WCF,所以我需要将它们存储在 SQL Server 上
        • 那么音频和视频文件呢?
        • 如果您有这些位,无论它们来自何处或采用何种格式,您都可以将它们存储在任何您喜欢的位置。当然,将它们转储到数据库中是一种可能的解决方案,但它们只是文件。为什么不使用文件系统?
        • 我可能应该补充一点,您可能仍需要将元数据存储在数据库中,但我会说存储对文件名的引用而不是文件的内容。
        • 您最好使用 .ashx 处理程序而不是页面 - 它更轻量级,并且没有像页面那样多的“包袱”。
        猜你喜欢
        • 2013-08-02
        • 1970-01-01
        • 2023-03-30
        • 2012-07-02
        • 2012-03-03
        • 1970-01-01
        • 2010-11-03
        • 1970-01-01
        • 2021-04-15
        相关资源
        最近更新 更多