我将图像存储在 Sql Server 数据库中,我想在网页上显示它们。
问题是,ASP.NET 中的图像控件具有属性 ImageUrl,它采用包含图像文件的文件夹的路径值。但我是从数据库表中绘制图像,不想将图像保存到磁盘,所以我可以提供路径。我宁愿将图像直接流式传输到页面。
我什至很难想象这个(双关语),并且怀疑要完成此操作的唯一方法是将图像临时保存到某个位置,然后将其指向图像控件。但也许我遗漏了什么?
编辑添加:
这适用于需要出示差旅费收据才能报销的会计系统。我们正在考虑允许用户(我们有 30,000 名用户)扫描他们的收据并将其与他们的报销请求相关联地存储起来。我想,将其存储在文件系统中是一种方法,将索引存储在 Sql Server 表中的文件系统中。但是我被要求查看是否可以在 Sql Server 中完成,我可以很好地完成,但是显示/报告方面很重要。需要为这些报销请求生成报告,而且我不知道 Crystal Reports 与浸入文件系统的合规性如何。简而言之,在 Sql Server 中执行此操作会容易得多。
最佳答案
您是否考虑过使用数据 URI?数据 URI 允许您将图像等数据直接嵌入到您的页面中。该图像被编码为 base 64,然后作为 <img>
的来源包含在内。 HTML 中的元素。您可以阅读更多关于数据 URI 的一般信息 here .
this question and answer 涵盖了如何在 C# 中执行此操作的详细信息.图像元素最终看起来像 <img src="data:image/png;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrS"/>
。 .
对图像使用数据 URI 的主要问题是不支持旧版本的 IE,或者限制图像的大小。 Here是数据 URI 的浏览器限制的文档。
关于c# - 我可以使用页面流式传输图像,而不是发送 ImageUrl 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16307198/