【 tulaoshi.com - ASP 】
一:前言
首先,没有料到图片与文本的上传会引起这么大的注意。上一篇贴子(Id=435906)贴出后,有不少人来信说看不懂。或
是仍然不能实现。我就以一种完全简单的手法。完成无组件的文本与图片上传数据库所有过程。希望能帮助所有对此有疑
问的网友。
二:准备工作
按照惯例,我先将我的测试环境告诉大家。
系统:Win98se + pws + asp
编程环境:Visual Interdev 6.0
数据库:Access2000 (因为网友问的最多的都是Access2000的问题。)
建一个库:access2000中,先建好一个Test.mdb的数据库。具体有四个字段。
id | text1 | text2 | img
自动编号 文本 文本 OLE对象 ’如果是sql server 则选择(image即可)
三:Are you ready ,Go!!!
3-1.建上传表单:
我们知道,图像与文本是两种不同制式的文件(二进制,流式文本)而如果要同一表单提交的话,(file格式提交)则
我们获取时就不能用原来的方法request.form而必须用equest.TotalBytes来获得所有的提交资料。但这时两种格式的文件
混合在一起比较难分。我的上一贴已经告诉大家用二进制的方法来分开这些资料。但十分麻烦,要用到许多二进值的函
数,所以许多网友来信问我有没有更简单的方法,好。我可以告诉大家,有!而且保证下面的方法保证一学就会。(这种方
法很另类但伟人说过白猫,黑猫。能上网的就是好猫!)
upload.asp(具体代码如下)
<% @ language=vbscript %
<html
<head
<meta name="VI60_defaultClientScript" content="VBScript"
<title File Upload </title
<script ID="clientEventHandlersVBS" LANGUAGE="vbscript"
<!--
Sub form2_onsubmit //** 这里是关键,当form2在提交的过程中时,即活form1的提交
form1.submit //**所以我们这里用了两个表单,但只用一个提交就可以了。
End Sub
--
</script
</head
<body
<form name="form1" ENCTYPE="multipart/form-data" ACTION="upimage.asp" METHOD="POST" target="_blank"
Please choose a picture to upload: <br
<input NAME="picture" TYPE="FILE" <br
</form
<form name="form2" action="uptext.asp" method="post"
<input type="text" name="text1"<br
<input type="text" name="text2"<br
<input type="submit" value="提交"
</form
</body
</html
3-2 兵分两路来处理数据。
首先,文本很简单。
uptext.asp (代码如下)
<% @ language=vbscript %
<%
strconn="driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("test.mdb")
text1=request.form("text1")
text2=request.form("text2")
response.write text1
response.write text2
set rs=Server.CreateObject("adodb.recordset")
sql="SELECT top 1 * FROM imgtable ORDER BY id DESC" ’这里的意思是选择最后一个Id,既刚刚被改动
rs.Open sql,strconn,1,3 ’就是你上传的图像的两个文本字段。
rs("text1")=text1 &nbs