如何在ACCESS数据库放入图片?

如何在ACCESS数据库放入图片?,第1张

首先建一个数据库,假设为(img.mdb).在其中建一表(pic),表中有两个字段(id,img),id数据类型为"自动编号",img的类型为"OLE对象".

下面用三个文件用来实现图片功能,conn.asp是定义数据库连接函数的,up.asp用来上传图片,show.asp用来从数据库读取图片.

-------------conn.asp--------------

<%

dim conn,rs

function getdata(sql)

dbpath="img.mdb"

set conn=server.CreateObject("ADODB.connection")

connstr="provider=Microsoft.jet.oledb.4.0data source="&server.MapPath(dbpath)

conn.open connstr

set rs=server.CreateObject("ADODB.recordset")

rs.open sql,conn,3,2

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="imgurl" id="imgurl">

<input type="submit" value="upload">

</form>

</body>

</html>

<%

if (request.totalbytes)>0 then '如果有数据提交,则进行下面的处理

%>

<!--#include file="conn.asp"-->

<%

formsize=request.totalbytes

formdata=request.binaryread(formsize)

bncrlf=chrB(13)&chrB(10)

divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)

datastart=instrb(formdata,bncrlf&bncrlf)+4

dataend=instrb(datastart+1,formdata,divider)-datastart

mydata=midb(formdata,datastart,dataend)

sql="select * from pic"

getdata(sql)

rs.addnew

rs("img").AppendChunk myData

rs.update

rsclose()

response.clear

response.write "success!"

end if

%>

-------------show.asp--------------

<!--#include file="conn.asp"-->

<%

id=trim(request("id"))

sql="select * from pic where id="&id

getdata(sql)

Response.ContentType="image/*"

Response.BinaryWrite rs("img").getChunk(8000000)

rsclose()

%>

图片上传后就可以通过show.asp?id=*来读取了,你也可以直接将图片用<img>标签插入其他页面中,如<img src="show.asp?id=1" />

1、可以建立一个字段 将其数据类型改为OLE对象 然后直接粘贴图片

2、或用将图片转换为二进制 存入数据库中

3、用普通字段放一个路径 指向图片 直接让显示

第三种方法最好了 图片直接存入数据库,数据库会很大的。。。

我不清楚你的意思是不是将图片存放在ACCESS数据库中?

如果是:

1、首先在数据表中建立一个字段,这个字段的数据格式是:“OLE 对象”,也就是说必须就图片的格式转换成二进制格式进行存储。

2、第二步是图片的选择,采用下面的方法:

<form ACTION="ZJZP1.ASP?ID=<%=ID%>" METHOD="POST" enctype="multipart/form-data">

<input TYPE="FILE" NAME="FI1" size="20">

<INPUT TYPE="Submit" onclick="return CheckLogin(this.form)" VALUE="上传图片">

</form>

在硬盘中选择图片,建议图片的格式最好是.gif或.jpg格式的。

3、

<!--#include virtual="/(连接数据库的文件名).asp"-->

<%

(存储图片的序号的变量)=request("ID")

response.buffer=true

formsize=request.totalbytes

formdata=request.binaryread(formsize)

bncrlf=chrb(13) &chrb(10)

divider=leftb(formdata,clng(instrb(formdata,bncrlf))-1)

datastart=instrb(formdata,bncrlf &bncrlf)+4

dataend=instrb(datastart+1,formdata,divider)-datastart

mydata=midb(formdata,datastart,dataend)

Set rs=Server.CreateObject("ADODB.Recordset")

rs.Open "Select * From (存储图片的数据表) WHERE ID="&(存储图片的序号的变量) &"",conn,3,3

rs("(存储图片的字段)").appendchunk mydata

rs("(判别图片是否存储的字段-字段格式:是/否")=True

rs.update

rs.close

set rs=nothing

%>

好的,现在你已经将图片存储到ACCESS数据库中了。

如果要读出,必须使用度二进制数据的专用代码。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6771270.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-28
下一篇2023-03-28

发表评论

登录后才能评论

评论列表(0条)

    保存