动态网站制作指南



当前位置 > 网站建设学院 > 网络编程 > ASP技巧 Rss
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket

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


发表日期:2000-10-13


一:前言

   首先,没有料到图片与文本的上传会引起这么大的注意。上一篇贴子(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")
%>

(全文完:希望本文能帮助那些急于想解决本类问题的网友。)
关注此文的读者还看过:
·2012-5-22 16:42:30 在HTML页面中实现点击数统计
·2012-5-22 16:42:11 让Session对象在不同域名下实现共享
·2012-5-22 16:42:04 ASP.NET MVC 框架
·2012-5-22 16:41:35 ASP中和星期有关的自定义函数
·2012-5-22 16:41:32 一个高效的数据分页的存储过程
·2012-5-22 16:41:30 不能ASP图像组件来生成图像的ASP计数器程序(二) 
·2012-5-22 16:41:02 Webservice调用方式
·2012-5-22 16:40:48 在asp中如何创建动态表--调用如下sp_execute
·2012-5-22 16:40:20 如何设置二级域名?
站长推荐 PS笔刷下载 在线翻译 系统进程 广告代码
  发表评论
姓 名: 验证码:
内 容:
教程搜索服务
ASP源码推荐
·手机号码归属地查询 v2.0
·高贝系统(GaoBeiSys) v1.0.2
·风云在线成绩查询系统 v1.0
·都市爱情猎头俱乐部
·汇率查询 v1.0
·创力CMS(CreateLive CMS) v4.2
·精致wap模拟器 v1.0
·嘉缘人才系统 V6 精简版
·圈圈问问(仿百度知道)
·ExoBUDHTML媒体播放器(RealPlay
·BXBBS第五终结版
·百度音乐小偷 Build 20080608
项目外包信息
·寻会php的程序员外包网站
·派桑网络-网络营销专家
·汽车配件网站制作 50000元
·整站SEO优化
·课件门户网程序
·求长期合作网站设计制作高手
·公司网站重新改版 8000元
·asp企业网站小改动
·网站flash片头
·文化传播公司网站设计稿
·UI界面设计
·产品外观改版设计 15000元
·照明灯具网站设计 10000元
·求长期合作网站设计制作高手
·做B2C网站 20000元
发布信息 浏览信息
邮件订阅服务
输入你的邮件地址,你将不会错过任何关于<ASP技巧>的内容


网络编程文章分类
ASP教程
ASP实例
ASP技巧
ASP文摘
PHP教程
PHP技巧
PHP实例
PHP文摘
JSP教程
JSP技巧
JSP实例
JSP文摘
ASP.NET教程
ASP.NET技巧
ASP.NET实例
ASP.NET应用
xml教程
xsl教程
xml技巧
C#教程
C#应用
Delphi教程
Perl教程
Shell教程
Ajax教程
Visual Basic教程
Java教程
J2EE/J2ME教程
C/C++教程
移动解决方案
移动短信技术
移动行业动态
软件工程
WordPress
Android开发
站长工具:Google PR查询|Alexa排名查询|网站速度测试|CSS在线编辑器|OPEN参数生成器|弹出式窗口代码产生器|密码登录生成器|在线按钮生成器|Meta标签生成器|邮箱图标在线生成|多色彩特效字代码生成器|网页代码调试器|在线FTP登陆|Flash取色器|配色代码对照表|配色辞典|CSS生成器|CSS在线压缩|广告代码|框架网页代码生成器|js/vbs加密|md5加密|进制转换|UTF-8 转换工具|在线调色板|Html转换js|Html转换asp|Html转换php|Html转换perl
实用工具:汉字翻译拼音|拼音字典|在线翻译|天气预报|火星文|在线网速测试|符号对照表|个税计算|理财工具|黄金价格|购房银行按揭利率计算|汇率查询|经典小工具|汉字简繁转换|普通单位换算|公制单位换算|生辰老黄历|国内电话区号|国家代码与域名缩写|文字加密解密|元素周期表|健康查询|世界时间|全国各地车牌查询|全国车辆交通违章查询|万年历|二十四节气|汉字横竖排版|手机号码查询|计算器|ip搜索|酒店预订|机票预订
广告刊登 | 版权声明 | 联系我们 | 加入收藏 | RSS订阅
Copyright © 2000-2012 www.knowsky.com All rights reserved | 沪ICP备05001343号