c# - 我可以使用页面流式传输图像,而不是发送 ImageUrl 吗?

标签 c# asp.net image

我将图像存储在 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/

相关文章:

c# - 在 C# 中解析 JSON 数组

c# - 裁剪图像的左侧

c# - 如何将 Unix 时间戳转换为 DateTime,反之亦然?

ASP.NET 异步缓存

c# - IIS 7.5 中的 ASP.NET Core WebAPI 500 内部错误

javascript - Python - 请求/RoboBrowser - ASPX POST JavaScript

css - 如何在这两张图片下放置文字

c# - IEnumerable<T> 线程安全?

java - 如何在java中将图像转换为透明图像

javascript - HTML5 Canvas 增强图像