如何显示存储在 BLOB 字段中的图像

摘要

使用 Active Server Page (ASP),你可以在 Internet 浏览器中查看存储在 BLOB (二进制大型对象)字段中的图像。 本文提供了有关如何显示 Microsoft SQL Server 示例数据库表中存储的 GIF 图像的信息 pub_info。

更多信息

大多数 Internet 浏览器都支持显示 GIF 和 JPEG 图像。 若要显示图像,浏览器将从 Web 服务器请求图像。 服务器将图像作为 HTTP 事务传递到浏览器,其中包含包含图像/GIF 或图像/JPEG MIME 类型的 HTTP 头。 你可以通过活动服务器页面模拟此行为。 以下示例构造一个图像的 HTTP 标头,然后使用来自 SQL Server 中的 image 字段的二进制信息向浏览器提供 GIF。

   FILE: SHOWIMG.ASP   <%@ LANGUAGE="VBSCRIPT" %>   <%   ' Clear out the existing HTTP header information   Response.Expires = 0   Response.Buffer = TRUE   Response.Clear   ' Change the HTTP header to reflect that an image is being passed.   Response.ContentType = "image/gif"   Set cn = Server.CreateObject("ADODB.Connection")   ' The following open line assumes you have set up a System DataSource   ' by the name of myDSN.   'Remember to change the following connection string parameters to reflect the correct values   'for your SQL server.   cn.Open "DSN=myDSN;UID=<username>;PWD=<strong password>;DATABASE=pubs"   Set rs = cn.Execute("SELECT logo FROM pub_info WHERE pub_id='0736'")   Response.BinaryWrite rs("logo")   Response.End   %>

此脚本仅在屏幕上显示图像。 如果想要显示 HTML 或 ASP 文档中的图像,必须在 image 标记中引用此脚本。 例如,如果你想要使用描述它的标题显示此图像,你可以使用以下 HTML 页面:

   <HTML>   <HEAD><TITLE>Display Image</TITLE></HEAD>   <BODY>   This page will display the image New Moon Books from a SQL Server   image field.<BR>   <IMG SRC="SHOWIMG.ASP">   </BODY>   </HTML>

注意 ASP 脚本假设 SQL Server 表中的图像字段(BLOB 数据)包含原始 GIF 图像。 Internet 浏览器假定原始 GIF 或 JPEG 数据遵循 HTTP 标头。 如果 BLOB 数据中包含任何无关的信息,这将通过此脚本传递,并且图像将无法正常显示。 当你意识到将图像放置到 BLOB 字段中的大多数方法将附加信息以标题的形式放置在图像中时,这一点非常重要。 这是 Microsoft Access 和 Microsoft Visual FoxPro 的示例。 这两个应用程序都将 " BLOB " 字段中的 OLE 标头和实际二进制数据一起保存。 此技术还可应用于其他类型的二进制数据,而不仅仅是图形。 浏览器需要知道正在呈现哪种类型的内容。 通过在 Response 变量中指定正确的 mime 类型来执行此操作。 例如,如果您想要查看 word 文档,请设置 ContentType = "application/msword"。

参考

有关 Visual InterDev 和 Active Server Page 的最新知识库 artices 和其他支持信息,请参阅 Microsoft 技术支持网站上的以下页面:

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

谢谢您的反馈意见!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×