【发布时间】:2011-12-13 19:22:24
【问题描述】:
如何在网页上显示存储在 varbinary(max) 中的图像?我环顾四周,很多人建议使用图像服务器控件,但我显示的图像数量可变,所以我不确定如何使用该控件?
我还需要能够调整大小并检查扩展名。
【问题讨论】:
-
你是如何访问数据库的?
标签: c# asp.net sql-server image
如何在网页上显示存储在 varbinary(max) 中的图像?我环顾四周,很多人建议使用图像服务器控件,但我显示的图像数量可变,所以我不确定如何使用该控件?
我还需要能够调整大小并检查扩展名。
【问题讨论】:
标签: c# asp.net sql-server image
Here 是一个很好的链接,可以帮助您开始尝试实现的目标。
【讨论】:
通常,您会创建一个页面,将字节从数据库直接写入响应流,然后将响应内容类型设置为适当的图像格式。示例:
Response.Write(myDbByteArray);
Response.ContentType = "image/png";
Response.End();
然后您只需将图像(甚至是基本标签)指向您的网址:
<img src="Path/ToMyPage.aspx?imgId=1" alt="Some Image" />
只要返回正确的内容类型,图片标签源是aspx页面没关系。
【讨论】:
Tejs 为您提供了它的要点(即将图像写入响应流),但它留下了有趣的花絮。这篇文章Download and Upload images from SQL Server via ASP.Net MVC 展示了如何使用高效的流语义和无中间文件将图像传入和传出 SQL Server。您应该尽量避免像大多数解决方案天真建议的那样将图像放入byte[],因为它会导致巨大的内存消耗并且无法扩展。
【讨论】:
我正在使用通用图像处理程序 (ashx),在该处理程序中我使用 response.binarywrite
【讨论】: