题记:其实已经很久没动asp了,最近有不少人都在问这个问题
正好已经写好这个东东,于是贴出来,希望对一部分仍在用asp的网友有所帮助
用asp向sqlserver数据库读写image文件
一、发送image文件的表单
img_upload.asp
<form name="form1" enctype="multipart/form-data" action="img_upfile.asp" method="post">
<input name="picture" type="file">
</form>
二、接受表单发过来的image文件
在img_upfile.asp文件中,
response.buffer=true
formsize=request.totalbytes
formdata=request.binaryread(formsize)
function imageup(formsize,formdata)
bncrlf=chrb(13) & chrb(10)
divider=leftb(formdata,instrb(formdata,bncrlf)-1)
datastart=instrb(formdata,bncrlf&bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
imageup=midb(formdata,datastart,dataend)
end function
mydata = imageup(formsize,formdata)
通过以上代码后,image文件已经存在于变量mydata中
三、将image数据加入数据库中
set rs_img = server.createobject("adodb.recordset")
sql_img = "select * from tbl_images where id='"&newid&"'"
rs_img.open sql_img,conn,1,3,1
if rs_img.eof then
strinsert = 1
else
strinsert = 0
end if
if strinsert = 1 then
rs_img.addnew
rs_img("id") = newid
rs_img("class_id") = class_id
rs_img("img_data").appendchunk mydata
rs_img.update
else
rs_img("class_id") = class_id
rs_img("img_data").appendchunk mydata
rs_img.update
end if
rs_img.close
set rs_img=nothing
set conn=nothing
以上代码先判断数据库中id记录为newid的字段内有没有数据,如果有则用当前数据更新数据库,若没有则将数据插入。
请注意:newid在别的地方定义,读者不必理会
四、读取数据库中的image文件并显示在网页上
用以下代码将数据显示在网页上,请注意,<img>标签的src指示为showimg.asp文件。也就是就,<img>标签指向的不一定是.gif啊什么的。
<img src="showimg.asp?id=<%=rs_img("id")%>">
核心的部分在showimg.asp文件中:
response.expires = 0
response.buffer = true
response.clear
dim id
id = trim(request("id"))
response.contenttype = "image/*"
set rs_img=server.createobject("adodb.recordset")
sql="select * from tbl_images where id='"&id&"'"
rs_img.open sql,conn,1,3,1
dim img_size
img_size = rs_img("img_data").actualsize
response.binarywrite rs_img("img_data").getchunk(img_size)
rs_img.close
set rs_img=nothing
set conn=nothing
取出数据后,用response.binarywrite和getchunk将其输出到浏览器上。
本文完
有问题请联系梦熊。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器