首页 / 知识
从 ASP.NET 中的 BLOB 条目动态呈现 asp:Image
2023-04-12 20:46:00

Dynamically Rendering asp:Image from BLOB entry in ASP.NET我想要实现的就是这个。我想让用户能够上传图像文件,将图像存储在 SQL Server 的 BLOB 中,然后将此图像用作站点其他页面中的徽标。 我通过使用 做到了这一点
但要做到这一点,我在要显示图像的地方使用了一个用户控件。如果可能的话,我想使用 asp:Image 控件,甚至是纯旧的 html 图像控件。这可能吗? 将\\'Generic Handler\\' 添加到您的Web 项目中,将其命名为Image.ashx 之类的名称。像这样实现它:
现在只需实现 GetImage 方法来加载具有给定 ID 的图像,就可以使用
显示它。您可能还想考虑在处理程序中实现某种形式的缓存。请记住,如果要将图像格式更改为 PNG,则需要使用中间 MemoryStream(因为 PNG 需要保存可查找的流)。 您可以将图像的内容直接 BASE64 编码到 SRC 属性中,但是,我相信只有 Firefox 才能将其解析回图像。 我通常做的是创建一个非常轻量级的 HTTPHandler 来提供图像:
您可以直接在 img 标签中引用它:
或者,您甚至可以创建一个服务器控件来为您执行此操作:
这可以像 那样使用
当然,您可以根据需要在代码隐藏中设置 databaseId。 您不希望在不实施客户端缓存的情况下从数据库提供 blob。 您将需要处理以下标头以支持客户端缓存:
对于执行此操作的 http 处理程序,请查看: 它有一个很好的帮手来提供内容。将数据库流传递给它应该很容易。它还进行服务器端缓存,这应该有助于减轻数据库的一些压力。 如果您决定从数据库、pdf 或大文件提供流媒体内容,处理程序还支持 206 个部分请求。 它还支持 gzip 和 deflate 压缩。 这些文件类型将受益于进一步压缩:
有些文件类型无法从进一步压缩中受益:
在 MVC 中使用 ASP.Net 这非常容易。你用这样的方法编写控制器:
在您的 ASP.NET Web 视图中或在此示例中,在您的 ASP.NET Web 窗体中,您可以使用指向您的方法的 URL 填充图像控件,如下所示:
瞧。不需要 HttpModules 麻烦。 将代码添加到处理程序以返回具有适当 mime 类型的图像字节。然后您可以将 url 添加到您的处理程序中,就像它是一个图像一样。例如:
有意义吗? 我们实际上刚刚发布了一些有助于解决此类问题的类: http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=16449 具体来说,请查看 DatabaseImage 示例。 |
最新内容
相关内容
Python的动态类型
Python的动态类型,数据,数字,对象,情况,对比,培训,赋值,字符串,元素,整数,在我们接触的对象中,有一类特殊的对象,是用于存储数据的。常见的该类python图像二值化处理
python图像二值化处理,培训,阈值,图像,方法,数组,直方图,灰度,示例,像素,黑白,一、图像二值化图像二值化是指将图像上像素点的灰度值设定为0python图像处理是啥
python图像处理是啥,数据,图片,培训,函数,框架,实例,模块,图像,接口,以上,python因为本身包含着丰富的库、模块以及各种函数,所以作用是非常大python怎么定义用户输入
python怎么定义用户输入,培训,字符串,整数,类型,用户,文本,定义,文档,小数点,位数,python中获取用户输入的方法如下:整数输入#!/usr/bin/pythopythonWeb开发和图形用户界面的模
pythonWeb开发和图形用户界面的模块有哪些?,网站,工具,互动,平台,培训,设计,模块,用户界面,图形,框架,关于PythonWeb开发和图形用户界面的模块python如何获取用户输入
python如何获取用户输入,培训,字符串,整数,类型,文本,文档,用户,小数点,位数,以上,python整数输入#!/usr/bin/python3usr_ip=input("Enteranpythonpillow如何处理图像
pythonpillow如何处理图像,标准,代码,培训,平台,图像,缩放,功能,调色板,切片,路径,pythonpillow如何处理图像1、说明是Python平台事实上的图如何在python中生成动态(参数化)单
如何在python中生成动态(参数化)单元测试?,如何在python中生成动态(参数化)单元测试?,项目,单元测试,第一个,我有,How do you generate使用PHP的GDlib imagecopy重新采样
使用PHP的GDlib imagecopy重新采样时,能否保留PNG图像的透明度?,使用PHP的GDlib imagecopy重新采样时,能否保留PNG图像的透明度?,调整,关于wss:通过内置的Web服务将文件上
关于wss:通过内置的Web服务将文件上传到SharePoint,关于wss:通过内置的Web服务将文件上传到SharePoint,服务,文件上传,方法,文档,UploaJava:确定当前Windows用户的编程方
Java:确定当前Windows用户的编程方式,Java:确定当前Windows用户的编程方式,登录,用户名,用户,查找,Java: Programatic Way to DeterminJava Swing:在Jar中显示图像
Java Swing:在Jar中显示图像,Java Swing:在Jar中显示图像,图像,运行,应用程序,路径,Java Swing: Displaying images from within a Jar