
下面用三个文件用来实现图片功能,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数据库中了。
如果要读出,必须使用度二进制数据的专用代码。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)