1、第9章 使用第三方组件,9,内容提要,本章主要介绍外置组件的基本概念、如何注册外部组件,如何在程序中调用。着重介绍两个网站常用的外置组件:文件上传和E-mail组件。为了加深对组件的理解,最后利用VB 6.0编写一个组件,并编写ASP文件调用。,利用ASP的外部组件,ASP之所以功能强大,主要因为它可以调用外部组件。目前在网上流行着众多ASP组件,比如:绘图组件、上传组件和电子邮件组件,等等。,组件概述,组件为应用程序通过指定的接口函数提供一些功能。可以把组件理解为一种程序,通过调用这种程序,实现在ASP程序中无法实现或者很难实现的功能。许多应用程序可以同时使用组件,因此组件提供了一种很好的代
2、码重用的方法。可以利用ASP设计制作动态、交互的Web页面,但是会发现ASP在某些方面功能不强,甚至如果不借助服务器端组件就很难实现某些功能,例如文件上传、数据库操作,邮件功能,文件系统操作等。但是幸运的是可以找到很多组件来提高ASP的编程应用能力。,组件的调用方法,服务器组件和ASP内置对象不同,不能直接使用,必须首先被实例化。利用Server对象的CreateObject方法创建一个对象并返回这个对象的引用。语法如下: Set objVar = Server.CreateObject(Class)Class 表示创建什么样的对象,Class的格式一般为:“工程名.类名 ”。 例如: Set
3、 MyFileObject = Server.CreateObject (“Scripting. FileSystemObject“ )中,工程名是Scripting,类名是FileSystemObject。,实现文件上传,文件上传的组件很多,其中比较常用的上传组件很多 比如ASPUpload、FileUpload等等,其中LyfUpload功能比较全,而且使用起来比较方便。该组件是由国内ASP爱好者刘玉锋编写的,目前众多的虚拟主机提供商在服务器上提供该组件。,文件上传组件简介,LyfUpload是一个免费的ASP文件上传组件,可以在ASP页面中接收客户端浏览器上传的文件。该组件是一个DLL(
4、Dynamic Link Library,动态连接库)文件,名称为“lyfUpload.dll”。该组件支持单文件上传、多文件上传、限制文件大小上传、限制某一类型文件上传、及文件上传重命名等功能,注册,使用一个外置组件,必须首先在服务器上注册。将lyfUpload.dll文件复制到系统盘WINNT目录的system32目录下单击“开始”菜单,打开“运行”窗口。在运行窗口中输入“regsvr32 lyfupload.dll”,注意必须将lyfupload.dll文件复制到system32目录下,否则程序就找不到该组件,注册方法如图6-1所示。,组件提供的方法,1. Request() 方法 2.
5、 FileType() 方法 3. SaveFile() 方法 4. About() 方法,组件提供的属性,1. ExtName属性 2. MaxSize属性 3. FileSize属性,案例9-1 文件上传,案例实现的功能是将客户端的文件上传到ASP所在路径下的Files目录中。首先是文件选择程序,如程序FileUpload.htm所示。当单击“提交”按钮时,调用程序FileUpload.asp文件处理,如下所示。,案例9-2上传文件到数据库,为了统一管理数据,有时候需要将文件保存到数据库中。这样对数据库的字段有一定的要求。在Access中一般利用类型“OLE 对象”来上传的各种文件。如图9
6、-5所示。,E-mail组件,网上贺卡非常流行,利用ASP就可以发送网上贺卡。程序发送E-mail的另一个应用领域是:会员信息的传送。在一个网站注册后,会收到一封系统自动发送的信,ASP可以实现此类的功能。这里介绍利用Jmail组件实现E-mail的发送。W3 JMail是一个发送邮件的组件,支持HTML格式的邮件,最新的版本可以从http:/下载。W3 JMail 发送邮件速度快、功能丰富并且是免费的。Jmail组件使用方法如下。 set msg = Server.CreateOBject( “JMail.Message“ ),案例9-3 发送E-mail,首先安装Jmail组件,安装完以后
7、自动注册到服务器上。Jmail发送邮件的使用方法如程序SendMail.asp所示。案例名称:发送E-mail 程序名称:SendMail.asp(执行的时候,需要修改用户名、密码和SMTP服务器),程序解释,程序解释:需要解释的地方有如下4个。 (1)修改“msg.From = “发送人邮箱地址“”语句,填入自己的邮件地址,如“msg.From = ““”。 (2)修改“msg.FromName = “发送人姓名“”语句,填入自己的大名,如“msg.FromName = “zhourunfa“”。 (3)修改“msg.AddRecipient(“接收人的E-mail地址“, “接收人姓名“)
8、”语句,填入自己要发送的地址,如“msg.AddRecipient(““, “zhangsan“)”。 (4)修改“if (not msg.Send( “用户名:密码邮箱的Smtp地址“ )”,用户名和密码是发送人邮箱的用户名和密码,注意中间用冒号隔开,符号后面是邮件的SMTP地址,现在发送邮件的服务器都需要验证是不是本系统的用户。,常见邮箱的SMTP地址,案例9-4 页面发送带附件Email,页面中发送Email通常需要添加主题,内容以及附件等内容。附件需要上传到服务器上,然后才能发送。输入页面如图9-10所示。,使用自己编写的组件,现在从事ASP编程的开发人员一般都要编写自己的组件,为了满
9、足这种工作需要和深入了解ASP的组件,现在通过实例自己动手编写一个组件。虽然比较简单,但是可以加深对组件的理解。,案例9-5利用VB 6.0写服务器端组件,第一步:打开VB 6.0,选择新建工程中的ActiveX DLL,单击“打开”按钮,如图9-12所示。,小结,本章重点理解组件的基本概念、如何注册和调用一个组件。掌握文件上传组件常用的方法和属性 掌握Jmail组件的使用方法 熟悉VB 6.0编写一个组件以及ASP文件调用。,本章习题,一、选择题 1. 语句:set MyFileObject = Server.CreateObject(“Scripting.FileSystemObject“
10、)中,工程名是_。 A) FileSystemObject B) Scripting C) Server D) File 2. 使用命令_注册组件。 A) regsvr32 B) regsvr C) regedit D) syssvr 3. 上传图像数据到数据库时, 该字段的类型是_。 A) binary B) OLE类型 C) 文本类型 D) 图形图像类型 4. 语句:msg.Send ( “zhangsan109:“ )的功能是_。 A) 给zhangsan109发送邮件 B) 给发送邮件 C) zhangsan109给别人发邮件 D) 123456给别人发邮件,二、填空题,1. 表单属性
11、中一定要包含语句_,此时处理的文件是一种Form数据,所以一定要加上这条语句,否则文件不能上传。 2. 上传组件的属性设置为:obj.extname=“gif“ 功能是_。,三、简答题与程序设计题,三、简答题与程序设计题 1. 内置组件和外置组件有什么区别? 2. 得到一个新的外置组件,如何在服务器上注册? 3. 文件上传组件有哪些属性和方法?功能是什么? 4. 文件上传程序的文件输入表单和一般的表单有什么区别? 5. 新建一个Jmail的Message对象为msg,语句“msg.Send( “用户名:密码邮箱的Smtp地址“ )”中的用户名、密码和SMTP的地址分别是什么含义?如果某人的邮箱是,密码是aaabbbccc,如何设置这三个参数? 6. 根据自己的情况,改编案例9-3中的程序,使之能发送邮件。(上机练习) 7. 编写一个组件,包含一个方法,该方法实现求一个输入值的立方,方法名为zzz。该组件调用的方法必须是:“Server.CreateObject(“abc.def“);”。(上机练习),