【发布时间】:2015-02-14 23:26:36
【问题描述】:
我正在尝试使用经典 ASP 中的以下代码从 MS-Access 数据库中读取 JPG 图像:
Response.Expires = 0
Response.Buffer = TRUE
Response.Clear
Response.ContentType = "image/jpg"
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("/database/database.mdb")
sqlString = "Select * from tblBusinessImages where fldID = " & request.querystring("id")
Set rs = cn.Execute(sqlString)
Response.BinaryWrite rs("fldImageData")
Response.End
但我不断收到错误消息,提示浏览器无法读取或显示图像。
数据库字段'tblBusinessImages'是一个OLE字段,图片是通过复制粘贴的方式保存到里面的,此时仅作测试用(会不会是错误的方式?)
现在我知道 MS-Access 在 BLOB 对象中保存了额外的数据(正如 MSDN 所说的here:
如果 BLOB 数据中包含任何无关信息,这将 被此脚本传递,图像将无法正常显示。 当您意识到大多数放置方法时,这一点变得很重要 图像到 BLOB 字段中以标题的形式放置额外信息 与图像。这方面的示例是 Microsoft Access 和 Microsoft 视觉 FoxPro。这两个应用程序都将 OLE 标头保存在 BLOB 中 字段以及实际的二进制数据。
)
我的问题是如何在没有 MS-Access 保存的额外数据/标题的情况下从 BLOB 读取 RAW 图像数据?
谢谢。
【问题讨论】:
标签: ms-access asp-classic blob