当前位置:站长之家学习教程网站编程ASP编程学习教程 → 文章内容

向SQLServer数据库读写image文件

减小字体 增大字体 作者:佚名  来源:不详  发布时间:2005-12-17 12:58:14
用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=trueformsize=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)+4dataend=instrb(datastart+1,formdata,divider)-datastartImageup=midb(formdata,datastart,dataend)End Functionmydata = 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,1If rs_img.eof Thenstrinsert = 1Elsestrinsert = 0End IfIf strinsert = 1 Thenrs_img.addnew rs_img("id") = newidrs_img("class_id") = class_idrs_img("img_data").appendchunk mydata rs_img.update Elsers_img("class_id") = class_idrs_img("img_data").appendchunk mydatars_img.updateEnd Ifrs_img.closeset 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 = 0Response.Buffer = TRUEResponse.Clear Dim idid = 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,1Dim img_sizeimg_size = rs_img("img_data").ActualSizeResponse.BinaryWrite rs_img("img_data").getChunk(img_size)rs_img.close set rs_img=nothing set conn=nothing


取出数据后,用Response.BinaryWrite和getChunk将其输出到浏览器上。

赞助商链接