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

在DELPHI中选择菜单File=》New,在“New Item”对话框的ActiveX选项卡中选择“ActiveX Library”,DELPHI会自动创建一个DLL工程Project1。

2、建立Automation组件

在DELPHI中选择菜单File=》New,在“New Item”对话框的ActiveX选项卡中选择“Automation Object”;然后在“Automation Object Wizard”对话框中输入Class Name(如“UploadFile”),Instancing选择“Multiple Instance”即可,单击“OK”后DELPHI会自动创建一个TLB(Type Library)文件Project1_TLB.PAS和一个PAS(Unit)文件Unit1.PAS。在Type Library设计窗口中,将Project1改名为MyUpload,则该文件上载组件的OLE注册码为“MyUpload.UploadFile”。

3、引入ASP类型库

为了使用ASP的五个内建对象(Request、Response、Server、Application、Session),需要引入ASP类型库。我们主要利用Request对象读取从客户端传递到服务器端的数据。

在Project菜单中选择“Import Type Library”,在“Import Type Library”对话框的“Type Libraries”列表选择“Microsoft Active Server Pages Object Library(Version 2.0)”(如果没有这个选项,请确定您的计算机上安装了IIS3以上或PWS4以上并且ASP.DLL已正确注册),DELPHI会自动创建一个TLB文件ASPTypeLibrary_TLB.PAS,其中有我们需要的ASP对象类型声明。

4、定义OnStartPage、OnEndPage过程

当在ASP页面上用Server.CreateObject创建一个OLE对象实例时,WEB服务器会调用其方法OnStartPage,将ASP应用环境信息传递给该对象,我们可以在该过程中获取客户端信息;当在ASP页面中释放一个OLE对象实例时,WEB服务器会调用其方法OnEndPage,我们可以在该过程中进行释放内存等结束操作。在我们这个组件中,我们要用到其OnStartPage方法。

OnStartPage方法应该在Unit1.PAS中定义,OnStartPage的函数原型为:

procedure OnStartPage(AScriptingContext: IUnknown);

其中参数AScriptingContext是一个IScriptingContext类型变量,包含五个属性(Request、Response、Server、Application、Session)分别对应ASP的五个内建同名对象。

我们需要在TLB定义窗口(View=》Type Library)中,为IUploadFile增加方法OnStartPage,其Declaration语句为“procedure OnStartPage(AScriptingContext: IUnknown);”。


(二)提取客户端上传的数据

该工作可以放在OnStartPage过程中进行。

利用AScriptingContext的属性Request(类型为IRequest)中的属性TotalBytes(请求信息内容长度)和方法BinaryRead可将客户端上传的请求信息数据读取到一个Byte类型的数组中,然后按RFC1867标准定义的数据格式来分析和提取数据。

1、首先定义TUploadFile的几个私有变量

在单元文件UP01.PAS(由Unit1.PAS另存)中加入对ASPTypeLibrary_TLB.PAS的引用(Uses),

然后加入

private

FContentLength : LongInt;//请求信息内容长度

FContentData : Variant;//内容数据,以数组形式存储请求信息内容

FFileName, //要上载的文件名称

FDelimeter : string; //表单域分界符

FScriptingContext : IScriptingContext;//ASP处理上下文环境内容

FFileDataStart, //文件数据开始位置

FFileDataEnd : LongInt; //文件数据结束位置


2、提取客户端上传的请求信息数据

//在OnStartPage事件中,获取ASP上下文信息、请求信息内容、表单域的分界符、文件数据

procedure TUploadFile.OnStartPage(AScriptingContext: IUnknown);

var

ARequest : IRequest; //WWW请求对象

AOleVariant : OleVariant; //记录请求信息内容长度

intDelimterLength : integer;//分界符长度

longIndex,ALongInt,longPo
  • 下一篇资讯: 得到CPU速度,单位MHz
  • 网学推荐

    免费论文

    原创论文

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