|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp可以轻松地实现对页面内容的动态控制,根据不同的浏览者,显示不同的页面内容。而浏览者一点觉察不出来,就像为他专门制作的页面一样。使用各种各样的组件,asp可以完成无比强大的功能。数据|数据库|无组件无组件图片与文本同步存进数据库的最复杂的举措
动感教导网公布日期:2001-7-17字数:4798
一:媒介
起首,没有推测图片与文本的上传会引发这么年夜的注重。上一篇贴子(Id=435906)贴出后,有很多人来信说看不懂。或
是仍旧不克不及完成。我就以一种完整复杂的伎俩。完成无组件的文本与图片上传数据库一切历程。但愿能匡助一切对此有疑
问的网友。
二:筹办事情
依照常规,我先将我的测试情况告知人人。
体系:Win98se+pws+asp
编程情况:VisualInterdev6.0
数据库:Access2000(由于网友问的最多的都是Access2000的成绩。)
建一个库:access2000中,先建好一个Test.mdb的数据库。详细有四个字段。
id|text1|text2|img
主动编号文本文本OLE工具’假如是sqlserver则选择(image便可)
三:Areyouready,Go!!!
3-1.建上传表单:
我们晓得,图象与文本是两种分歧制式的文件(二进制,流式文本)而假如要统一表单提交的话,(file格局提交)则
我们猎取时就不克不及用本来的办法request.form而必需用equest.TotalBytes来取得一切的提交材料。但这时候两种格局的文件
夹杂在一同对照难分。我的上一贴已告知人人用二进制的办法来分隔这些材料。但非常贫苦,要用到很多二进值的函
数,以是很多网友来信问我有无更复杂的办法,好。我能够告知人人,有!并且包管上面的办法包管一学就会。(这类方
法很另类但巨人说过白猫,黑猫。能上彀的就是好猫!)
upload.asp(详细代码以下)
<%@language=vbscript%>
<html>
<head>
<metaname="VI60_defaultClientScript"content="VBScript">
<title>FileUpload</title>
<scriptID="clientEventHandlersVBS"LANGUAGE="vbscript">
<!--
Subform2_onsubmit//**这里是关头,当form2在提交的过程当中时,即活form1的提交
form1.submit//**以是我们这里用了两个表单,但只用一个提交就能够了。
EndSub
-->
</script>
</head>
<body>
<formname="form1"ENCTYPE="multipart/form-data"ACTION="upimage.asp"METHOD="POST"target="_blank">
Pleasechooseapicturetoupload:<br>
<inputNAME="picture"TYPE="FILE"><br>
</form>
<formname="form2"action="uptext.asp"method="post">
<inputtype="text"name="text1"><br>
<inputtype="text"name="text2"><br>
<inputtype="submit"value="提交">
</form>
</body>
</html>
3-2兵分两路来处置数据。
起首,文本很复杂。
uptext.asp(代码以下)
<%@language=vbscript%>
<%
strconn="driver={microsoftaccessdriver(*.mdb)};dbq="&server.MapPath("test.mdb")
text1=request.form("text1")
text2=request.form("text2")
response.writetext1
response.writetext2
setrs=Server.CreateObject("adodb.recordset")
sql="SELECTtop1*FROMimgtableORDERBYidDESC"’这里的意义是选择最初一个Id,既方才被修改
rs.Opensql,strconn,1,3’就是你上传的图象的两个文本字段。
rs("text1")=text1’注重,这里是修改不是增加,以是不必addnew。
rs("text2")=text2
rs.Update
rs.Close
%>
接着,来处置图象。
upimage.asp(详细代码以下)
<%
FormSize=Request.TotalBytes’失掉数据
FormData=Request.BinaryRead(FormSize)
functionImageUp(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)
endfunction
Image=ImageUp(FormSize,Formdata)’这里就是图象部分了。
setrs=server.CreateObject("adodb.recordset")
strconn="driver={microsoftaccessdriver(*.mdb)};dbq="&server.MapPath("test.mdb")
sql="SELECT*FROMimgtable"
rs.Opensql,strconn,1,3
rs.AddNew’由于表单二在表单一提交的过程当中下提交了。
rs("img").appendchunkImage’以是这里是增加。
rs.Update
rs.Close
response.contenttype="image/gif"
response.binarywriteimageup(formsize,formdata)’这里是显现图象。暗示乐成!
%>
啊?!?!本来云云复杂!
四:“显现,我要同页显现”
终究完成了图文同步提交。(真的是同步吗?不是吗?是吗?唉,我们只是为懂得决成绩。何须认真哪?不
是吗?)
如今我们还要让他同页显现出来。实在,这是一样的思绪。我们也用两页来完成。
主页面:show.asp
<%@Language=VBScript%>
<%
strconn="driver={microsoftaccessdriver(*.mdb)};dbq="&server.MapPath("test.mdb")
setrs=Server.CreateObject("adodb.recordset")
sql="SELECTtop1*FROMimgtableORDERBYidDESC"
rs.Opensql,strconn,1,3
%>
<html>
<body>
以下是你的上传材料。<br>
文本一:<%Response.Writers("text1")%><br>
文本二:<%Response.Writers("text2")%><br>
你的图象:
<imgsrc=showimg.asp?id=<%=rs("id")%>>’注重这里,这才是关头。他能够完成网页图象与文本
</p>ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。 |
|