分享
 
 
 

无组件图片与文本同步存入数据库的最简单的办法

王朝other·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

一:前言

首先,没有料到图片与文本的上传会引起这么大的注意。上一篇贴子(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 ’注意,这里是改动不是添加,所以不用addnew。

rs("text2")=text2

rs.Update

rs.Close

%>

接着,来处理图像。

upimage.asp (具体代码如下)

||||||<%

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

Image=ImageUp (FormSize,Formdata) ’这里就是图像部分了。

set rs=server.CreateObject("adodb.recordset")

strconn="driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("test.mdb")

sql="SELECT * FROM imgtable"

rs.Open sql,strconn,1,3

rs.AddNew ’因为表单二在表单一提交的过程中下提交了。

rs("img").appendchunk Image ’所以这里是添加。

rs.Update

rs.Close

response.contenttype="image/gif"

response.binarywrite imageup(formsize,formdata) ’这里是显示图像。表示成功!

%>

啊?!?!原来如此简单!

四:“显示,我要同页显示”

终于完成了图文同步提交。(真的是同步吗?不是吗?是吗? 唉,我们只是为了解决问题。何必当真哪?不

是 吗?)

现在我们还要让他同页显示出来。其实,这是同样的思路。我们也用两页来完成。

主页面:show.asp

<%@ Language=VBScript %>

<%

strconn="driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("test.mdb")

set rs=Server.CreateObject("adodb.recordset")

sql="SELECT top 1 * FROM imgtable ORDER BY id DESC"

rs.Open sql,strconn,1,3

%>

<html>

<body>

以下是你的上传资料。<br>

文本一:<% Response.Write rs("text1") %><br>

文本二:<% Response.Write rs("text2") %><br>

你的图像:

<img src=showimg.asp?id=<%=rs("id")%>> ’注意这里,这才是关键。他可以实现网页图像与文本

</body> ’共存。

</html>

幕后页面:showimg.asp (说他是幕后的页面,因为他潜伏在主页面里。看上是一个页面一样)

<%@ Language=VBScript %>

<%

strconn="driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("test.mdb")

id=Request("id")

set rs=server.CreateObject("adodb.recordset")

sql="SELECT * FROM imgtable where id="&id

rs.Open sql,strconn,1,3

response.contenttype="image/gif"

Response.BinaryWrite rs("img")

%>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有