使用ASP实现基于WEB的数据库资料系统

2008-02-23 05:31:38来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

ASP简介
ASP(Active Server Page)是Microsoft公司推出的基于IIS(Internet Information Server)的动态网页研发技术。ASP都是以ISAPI(Internet Service API)的原理实现的,他通常使用VBScript语言进行HTML文档的嵌入式脚本设计,文档名后缀是.asp。他的原理如图1所示。
当浏览器向Web Server发出.asp请求时,Web Server开始运行ASP脚本程式,然后Web Server启动ASP,ASP将所请求的文档从头到尾进行检查,执行文档中的嵌入的ASP脚本,最后将执行结果HTML网页返回给Web Server。Web Server再将该HTML网页发送给客户端。这样,用户能够根据浏览器发出的请求设计ASP脚本,从而由不同的请求产生不同的脚本执行结果。ASP具备许多长处(如使用简单,执行效率较高等),但他同时也具备其先天的弱点,即他使用的是脚本语言,功能有限,难以完成许多复杂的业务功能。微软为了弥补这一弱点,提供了在ASP中使用ActiveX组件的功能,从而许多复杂的功能就能够用其他许多高级语言(如Visual C )来实现,然后将这些功能包装为ActiveX,供ASP调用。ADO(ActiveX Data Object)就是在ASP中常用的数据库访问组件。

WEB数据库资料系统实现的关键技术
要实现基于WEB的数据库资料系统,关键要解决两个方面的问题。第一要实现将客户端文档资料通过浏览器上载到WEB服务器,并将文档内容保存到数据库中;第二要实现从数据库中读取资料内容,并将内容发送到客户端浏览器。为说明如何实现这两项技术,我们用一个简单的数据库进行示例(这里使用的数据库环境是MS SQL Server 6.5),这个数据库只有一个表(UploadFile),其结构如图2所示。
其中,id字段是关键字,自增类型;Title表示资料标题;FileName是上载的资料文档名;Content字段如何存放二进制资料文档内容。下面将讲述实现将客户端文档资料通过浏览器上载到WEB服务器,并将文档内容保存到数据库中连同如何从数据库中读取资料内容,并将内容发送到客户端浏览器。WEB服务器平台是Windows NT Server 4.0 IIS4.0 SQL Server 6.5,客户端使用IE4.0,系统调试通过。

使用ASP实现文档上载到WEB服务器
基于Web方式上载文档,要遵从RFC1867标准(IE3.0和Netscape 3.0 以上版本浏览器都支持)。但IIS没有提供这方面的支持。因此要使用ASP实现文档上载,必须调用相应的ActiveX组件,这个ActiveX组件ASP本身没有提供,能够自己研发(根据RFC1867标准),也能够使用第三方提供的组件。这里介绍的方法使用第三方的组件ASPUpload.dll,在使用前必须先在WEB服务器上注册(将ASPUpload.dll拷贝到\winnt\system32目录下,然后云运行“regsvr32 aspupload.dll”)。
其中客户端源文档如下(uploadTest.htm):
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>文档上载客户端</title>
</head>
<body>
<form method="POST" action="uploadTest1.asp" enctype="multipart/form-data"
name="UPloadForm">
<p><input type="file" Name="File1"> </p>
<p><input type="submit" value="Submit" name="Upload"></p>
</form>
</body>
</html>
其中客户端文档要注意两点:
* 文档上载提交表单(Form)的enctype必须指定为“multipart/form-data”
* 语句<input type="file" Name="File1">表示上载文档域,用户能够在该域中输入或选定文档。

服务器端源文档如下(uploadTest1.asp):
<%response.buffer=true%>
<html>
<%Set Upload=Server.createobject("Persits.Upload.1") '创建文档上载组件
Count=Upload.Save("e:\aspupload") '将客户端文档保存到WEB服务器端的本地硬盘上%>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Upload Test</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body>
<p>上载了<%=Count%>个文档</p>
<p>File has been uploaded.</p>
</body>
</html>
其中,脚本Set Upload=Server.createobject("Persits.Upload.1")创建了文档上载组件,该组件通过调用Save方法将浏览器端的文档内容保存到指定路径。

将文档存在数据库中
将文档保存在数据库中主要用了ASPUpLoad组件中文档对象的ToDatabase方法。源文档如下:
客户端源文档(uploadToDB.htm):
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>文档上载客户端</title>
</head>
<body>
<form method="POST" action="UploadToDB.asp" enctype="multipart/form-data"
name="FormUpload">
<p><input type="file" name="FileUpload"> </p>
<p><input type="submit" value="上载" name="B1"></p>
</form>
<p><a href="readFile.asp">读取数据库中文档</a></p>
</body>
</html>

服务器端源文档(uploadToDB.asp):
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>文档上载到数据库</title>
</head>
<body>
<%Set Upload=Server.createobject("Persits.Upload.1")
Count=Upload.Save("e:\aspupload")
on error resume next
set FileObj=Upload.Files("FileUpload")
SQL="insert into upLoadFile (Title,FileName,Content) values ('"&FileObj.Path&"','"&FileObj.Path&"',?)"
response.write SQL
FileObj.ToDatabase "DSN=FileUpload;UID=sa;",SQL
if Err<>0 then
Response.write "Error Saving the file:"&Err.Description
else
FileObj.delete
response.write "Success!"

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: ASP中页面限权访问的几种方法

下一篇: 利用ASP存取各种常用类型数据库(1)