看看这个你就明白了..
无组件图片与文本同步存入数据库的最简单的办法
upload.asp(具体代码如下)
1 @ language=vbscript
1<html>
2<head>
3<meta content="VBScript" name="VI60_defaultClientScript"/>
4<title> File Upload </title>
5<script id="clientEventHandlersVBS" language="vbscript">
6<!--
7Sub form2_onsubmit //** 这里是关键,当form2在提交的过程中时,即活form1的提交
8form1.submit //**所以我们这里用了两个表单,但只用一个提交就可以了。
9End Sub
10\-->
11</script>
12</head>
13<body>
14<form action="upimage.asp" enctype="multipart/form-data" method="POST" name="form1" target="_blank">
15Please choose a picture to upload: <br/>
16<input name="picture" type="FILE"/> <br/>
17</form>
18<form action="uptext.asp" method="post" name="form2">
19<input name="text1" type="text"/><br/>
20<input name="text2" type="text"/><br/>
21<input type="submit" value="提交"/>
22</form>
23</body>
24</html>
3-2 兵分两路来处理数据。
首先,文本很简单。
uptext.asp (代码如下)
1 @ language=vbscript
1
2strconn="driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("test.mdb")
3text1=request.form("text1")
4text2=request.form("text2")
5response.write text1
6response.write text2
7
8set rs=Server.CreateObject("adodb.recordset")
9sql="SELECT top 1 * FROM imgtable ORDER BY id DESC" ’这里的意思是选择最后一个Id,既刚刚被改动
10rs.Open sql,strconn,1,3 ’就是你上传的图像的两个文本字段。
11
12rs("text1")=text1 ’注意,这里是改动不是添加,所以不用addnew。
13rs("text2")=text2
14rs.Update
15rs.Close
接着,来处理图像。
upimage.asp (具体代码如下)
1
2FormSize = Request.TotalBytes ’得到数据
3FormData = Request.BinaryRead( FormSize )
4
5function ImageUp(formsize,formdata) ’这个函数的功能是截取其中的图像部分。
6bncrlf=chrb(13) & chrb(10) ’做成函数后。以后你可以自己随意使用了。
7divider=leftb(formdata,instrb(formdata,bncrlf)-1)
8datastart=instrb(formdata,bncrlf&bncrlf)+4
9dataend=instrb(datastart+1,formdata,divider)-datastart
10imageup=midb(formdata,datastart,dataend)
11end function
12
13Image=ImageUp (FormSize,Formdata) ’这里就是图像部分了。
14
15set rs=server.CreateObject("adodb.recordset")
16strconn="driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("test.mdb")
17sql="SELECT * FROM imgtable"
18rs.Open sql,strconn,1,3
19
20rs.AddNew ’因为表单二在表单一提交的过程中下提交了。
21rs("img").appendchunk Image ’所以这里是添加。
22rs.Update
23rs.Close
24
25
26response.contenttype="image/gif"
27response.binarywrite imageup(formsize,formdata) ’这里是显示图像。表示成功!
28
四:“显示,我要同页显示”
终于完成了图文同步提交。
现在我们还要让他同页显示出来。其实,这是同样的思路。我们也用两页来完成。
主页面:show.asp
1@ Language=VBScript
1
2strconn="driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("test.mdb")
3
4set rs=Server.CreateObject("adodb.recordset")
5sql="SELECT top 1 * FROM imgtable ORDER BY id DESC"
6rs.Open sql,strconn,1,3
1<html>
2<body>
3以下是你的上传资料。<br/>
4文本一:```
5 Response.Write rs("text1")
6```<br/>
7文本二:```
8 Response.Write rs("text2")
9```<br/>
10
11你的图像:
12<img =rs("id")="" ```="" src="showimg.asp?id=```"/> ’注意这里,这才是关键。他可以实现网页图像与文本
13</body> ’共存。
14</html>
幕后页面:showimg.asp (说他是幕后的页面,因为他潜伏在主页面里。看上是一个页面一样)
1@ Language=VBScript
1
2strconn="driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("test.mdb")
3id=Request("id")
4set rs=server.CreateObject("adodb.recordset")
5sql="SELECT * FROM imgtable where id="&id
6rs.Open sql,strconn,1,3
7response.contenttype="image/gif"
8Response.BinaryWrite rs("img")
---------------------------------------------------------------
你用的事select top 1
当然都是同一id了