ASP中,从ACCESS数据库读取图片的问题

来源:百度知道 编辑:UC知道 时间:2024/05/08 02:34:49
操作系统:XP SP2

应用软件:Dreamweaver7.0.1、Access数据库

本人:小白chi,哈哈

叙述:image.mdb下的pic表中有id[自动编号]和img[OLE对象]两个字段。现将一张JPEG图片以长二进制数据存入img字段中。代码如下:

=========conn.asp=========

<%
dim conn,rs

function getdata(sql)
dbpath="mdb\image.mdb"
set conn=server.CreateObject("ADODB.connection")
connstr="provider=Microsoft.jet.oledb.4.0;data source="&server.MapPath(dbpath)
conn.open connstr
set rs=server.CreateObject("ADODB.recordset")
rs.open sql,conn,3,2 ←第10行
end function

sub rsclose()
rs.close()
set rs=nothing
conn.close()
set conn=nothing
end sub
%>

=========up.asp==========

<html>
<body>
<form action="up.asp" method="post" enctype="multipart/form-data" >
<input type="file" size="12" name=&q

??JFIF?鍱xifII*1J2fi?zACD Systems Digital Imaging2005:12:03 10:00:42?0210悞484???€?R980100?Photoshop 3.08BIM?C 

(1#%(:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc?C//cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc?€?"?
??}!1AQa"q2亼?#B绷R佯$3br?
====================
出现这样的字符,说明读取已经成功了(如果用记事本打开被上传的那个jpeg文件,看到的应该也是这样的内容),只不过asp默认是以Text/Html输出的,改为image/Jpeg就可以了,方法是在asp文件前面加上 <% Response.ContentType = "image/JPEG" %>,如果是Gif图片,则改为
<% Response.ContentType = "image/GIF" %>,

系统 access2000,有一个A.mdb数据库,其中的A表中有一个ole图片格式的字段(具体是什么格式不知道),现在我已经将ole字段读出,但是无法显示。我试过将读出的文件改后缀名为.bmp .jpg 都不能显示。文件大小在2.5k左右。我查过一些帖子,说明OLE 引擎在文件二进制流前又加了一段数据,在不知道 OLE 字段中究竟保存的是怎样格式(扩展名)的时候用程序恢复该文件,需要知道写入OLE时的头信息。以下是读取的代码:'读取数据库中的图像Set StmPic = New ADODB.StreamStrPicTemp = "c:\temp.tmp" '临时文