网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
用Delphi 6开发ASP上传组件详解
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式

左轻侯

  文件上传是WEB开发中经常要用到的功能,但asp本身和内置的组件都不支持文件上传功能。网上流
传的一些第三方组件虽然能够解决这个问题,但大多是要收费的,更别说Open Source了。本文将详细
剖析WEB文件上传的原理,以及一步步指导读者如何用Delphi6开发一个ASP上传组件。

源码和demo我已经发布在个人主页上
http://www.wushuang.net


1 Html文件分析
  首先我们来看一个html文件源码,文件名是test.htm,功能是提供用户上传的界面:

<html>
<body>
<center>
   <form name="mainForm" enctype="multipart/form-data"
action="test.asp" method=post>
    <input type=file name=mefile><br>
     <input type=hidden name=a1 value="fdsaf">
     <input type=hidden name=a2 value="fdsaf">
     <input type=hidden name=a3 value="fdsaf">
     <input type=hidden name=a4 value="fsdfsdsaf">
     <input type=hidden name=a5 value="这个是这个">
     <input type=text name=a6 value="fdsaf">
   <input type=submit name=ok value="OK">
   </form>
</center>
</body>
</html>

  这个文件里包含了一个名为mainForm的form,以及随手写的一些input域。注意这个form和一
般的form有两个不同的地方:一是它有一个type=file的域,没有value。用浏览器打开这个文件时,
这个域会表现为一个右侧有“浏览”字样的文件输入框,用户可以通过它来选择本地硬盘上的文件。二是
form有一个特殊的属性:enctype="multipart/form-data"。这个属性告诉浏览器要上传二进制文
件,并进行相应编码。
  这种编码会产生什么样的表单信息呢?让我们来看看test.asp,也就是接受表单的asp文件的源码,
它非常简单:

<%
formsize=request.totalbytes   ''获得表单原始信息的长度
formdata=request.binaryread(formsize)   ''读取表单原始信息

response.binarywrite formdata  ''返回表单原始信息
%>

  如读者在注释中了解的,这段代码的功能是将表单的原始信息返回。让我们来看看它的运行效果。将
这两个文件置于web目录下,访问test.htm。在文件输入框中,选择一个文件(我选了一个jpg图片
不过最大不要太大)。提交,然后可以看到这样一堆乱七八糟的信息:

-----------------------------7d2227629012e Content-Disposition: form-data;
name="mefile"; filename="C:\Documents and Settings\aaa\My Documents\My
Pictures\zzjh.jpg" Content-Type: image/pjpeg (作者注:以下为乱码)
-----------------------------7d2227629012e Content-Disposition: form-data;
name="a1" fdsaf -----------------------------7d2227629012e Content-Disposition:
form-data; name="a2" fdsaf -----------------------------7d2227629012e
Content-Disposition: form-data; name="a3" fdsaf
-----------------------------7d2227629012e Content-Disposition: form-data;
name="a4" fsdfsdsaf -----------------------------7d2227629012e
Content-Disposition: form-data; name="a5" 这个是这个
-----------------------------7d2227629012e Co
  • 下一篇资讯: Delphi控制Excel2000心得
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号