你没有说清是什么数据库,先说说access吧。 如何从ACCESS
数据库中读取images 1。ACCESS和FoxPro数据库中的
图形格式 当浏览器遇到一个<img>标志时,它会根据你设定的src属性来下载文件。 这可能是一个图形文件或则是一个ASP页面。 如果是一个返回gif二进制的ASP页面 浏览器需要知道返回的是什么格式的图形文件 因为这个原因,就需要指定content type,为image/gif,image/bmp image/jpeg或则其他什么的。 Response.contentType = "image/gif" 但这会导致另外一个问题,那就是我们只能够显示gif格式的图象, 或则说保存在数据库中的东西只能够是gif格式的了。 但是一些数据库是使用gif格式保存的,但是另外一些则是使用 jpeg格式保存的,甚至其他是采用OLE方式来保存图形的。 所以我们必须根据图形的格式来设置response的content type. 注意的是你也可以从一个文件中新建一个位图对象,但使用这样 的方式保存在数据库中的图形格式是浏览器不能够识别的。 当你往数据库中保存图象时,你应该知道你需要使用什么格式来保存 你可以把文件中的每一个字节保存下来,或则通过ACCESS/Foxpro的把图形保存 为一个OLE格式。 你使用什么格式保存图象决定了你在ASP中用什么格式来读出图形来。 具体来说,如果你在ACCESS/FoxPro中将图形保存为bmp,gif,jpeg( 这个必须要使用到ACCESS/FoxPro的OLE对象,即使用ACCESS的插入对象 对话框来完成),这是当你使用 image/bmp时浏览器是不能够解释的。 现在假设在数据库中保存的是你所想要的图形格式 (GIF, JPEG, BMP, TIFF, 等)现在来看看要怎么把它们从 数据库中读出来。 在ACCESS中使用了两个关键的技术来保存图形 1。使用了bmp格式 2。78个字节的文件头 <% response.Expires = 0 response.Buffer = True response.Clear response.contentType = "image/bmp" %>接着你要干的就是去掉那78个字节的OLE对象的文件头。 <% Const OLEHEADERSIZE = 78 nFieldSize = rs("photo").ActualSize oleHeader = rs("photo").GetChunk(OLEHEADERSIZE) imageBytes = rs("photo").GetChunk(nFieldSize - OLEHEADERSIZE) Response.BinaryWrite imageBytes %>现在举一个例子: 如果你要得到一个职工的信息,这段信息包括一个介绍和他的图象。 并且要同时显示文字和图形。 代码如下:(其中的theImg是一个代理页面) theImg.asp <% response.Expires = 0 response.Buffer = True response.Clear response.contentType = Session("ImageType") response.BinaryWrite Session("ImageBytes") Session("ImageType") = "" Session("ImageBytes") = "" response.End %>Function SetImageForDisplay(field, contentType) OLEHEADERSIZE = 78 contentType = LCase(contentType) select case c显示图片不是那样的,那样出来的只是路径,假设你数据库中存放图片路径的字段是picpath,那么你这样:先读取这个值;
set rs=...
... 这里就不说了
显示图片:<img src="<%=rs("picpath")%>">这样读取的图片是按原来尺寸显示,你可以限制尺寸:
<img src="<%=rs("picpath")%>" width="这里你可以设置" heigth="这里你可以设置" border="0">这样就可以了。
photo文本字段中不要存入e:\
这个在服务器上是行不通的.
你只要存入站内路径就可以了.
显示出来方法
<img
src="图片路径地址">
评论列表(0条)