asp网站下载功能(asp最新版本)
大家好,如果您还对asp网站下载功能不太了解,没有关系,今天就由本站为大家分享asp网站下载功能的知识,包括asp最新版本的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
如何实现在网站的文件上传和下载功能
呵呵, ASP的到JAVA来问啦.
-------给你引用一段。
文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给出几种常见的方法,本文主要内容包括:
1、如何解决文件上传大小的限制
2、以文件形式保存到服务器
3、转换成二进制字节流保存到数据库以及下载方法
4、上传Internet上的资源
第一部分:
首先我们来说一下如何解决ASP.NET中的文件上传大小限制的问题,我们知道在默认情况下ASP.NET的文件上传大小限制为2M,一般情况下,我们可以采用更改WEB.Config文件来自定义最大文件大小,如下:
<httpRuntime executionTimeout="300" maxRequestLength="40960" useFullyQualifiedRedirectUrl="false"/>这样上传文件的最大值就变成了4M,但这样并不能让我们无限的扩大MaxRequestLength的值,因为ASP.NET会将全部文件载入内存后,再加以处理。解决的方法是利用隐含的HttpWorkerRequest,用它的GetPreloadedEntityBody和ReadEntityBody方法从IIS为ASP.NET建立的pipe里分块读取数据。实现方法如下:
IServiceProviderprovider=(IServiceProvider)HttpContext.Current;
HttpWorkerRequestwr=(HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest));
byte[]bs=wr.GetPreloadedEntityBody();
.
if(!wr.IsEntireEntityBodyIsPreloaded())
{
intn=1024;
byte[]bs2=newbyte[n];
while(wr.ReadEntityBody(bs2,n)>0)
{
..
}
}这样就可以解决了大文件的上传问题了。
第二部分:
下面我们来介绍如何以文件形式将客户端的一个文件上传到服务器并返回上传文件的一些基本信息
首先我们定义一个类,用来存储上传的文件的信息(返回时需要)。
public class FileUpLoad
{
public FileUpLoad()
{
}
/**////<summary>
///上传文件名称
///</summary>
public string FileName
{
get
{
return fileName;
}
set
{
fileName= value;
}
}
private string fileName;
/**////<summary>
///上传文件路径
///</summary>
public string FilePath
{
get
{
return filepath;
}
set
{
filepath= value;
}
}
private string filepath;
/**////<summary>
///文件扩展名
///</summary>
public string FileExtension
{
get
{
return fileExtension;
}
set
{
fileExtension= value;
}
}
private string fileExtension;
}
另外我们还可以在配置文件中限制上传文件的格式(App.Config):
<?xml version="1.0" encoding="gb2312"?>
<Application>
<FileUpLoad>
<Format>.jpg|.gif|.png|.bmp</Format>
</FileUpLoad>
</Application>
这样我们就可以开始写我们的上传文件的方法了,如下:
public FileUpLoad UpLoadFile(HtmlInputFile InputFile,string filePath,string myfileName,bool isRandom)
{
FileUpLoad fp= new FileUpLoad();
string fileName,fileExtension;
string saveName;
//
//建立上传对象
//
HttpPostedFile postedFile= InputFile.PostedFile;
fileName= System.IO.Path.GetFileName(postedFile.FileName);
fileExtension= System.IO.Path.GetExtension(fileName);
//
//根据类型确定文件格式
//
AppConfig app= new AppConfig();
string format= app.GetPath("FileUpLoad/Format");
//
//如果格式都不符合则返回
//
if(format.IndexOf(fileExtension)==-1)
{
throw new ApplicationException("上传数据格式不合法");
}
//
//根据日期和随机数生成随机的文件名
//
if(myfileName!= string.Empty)
{
fileName= myfileName;
}
if(isRandom)
{
Random objRand= new Random();
System.DateTime date= DateTime.Now;
//生成随机文件名
saveName= date.Year.ToString()+ date.Month.ToString()+ date.Day.ToString()+ date.Hour.ToString()+ date.Minute.ToString()
+ date.Second.ToString()+ Convert.ToString(objRand.Next(99)*97+ 100);
fileName= saveName+ fileExtension;
}
string phyPath= HttpContext.Current.Request.MapPath(filePath);
//判断路径是否存在,若不存在则创建路径
DirectoryInfo upDir= new DirectoryInfo(phyPath);
if(!upDir.Exists)
{
upDir.Create();
}
//
//保存文件
//
try
{
postedFile.SaveAs(phyPath+ fileName);
fp.FilePath= filePath+ fileName;
fp.FileExtension= fileExtension;
fp.FileName= fileName;
}
catch
{
throw new ApplicationException("上传失败!");
}
//返回上传文件的信息
return fp;
}
然后我们在上传文件的时候就可以调用这个方法了,将返回的文件信息保存到数据库中,至于下载,就直接打开那个路径就OK了。
第三部分:
这里我们主要说一下如何以二进制的形式上传文件以及下载。首先说上传,方法如下:
public byte[] UpLoadFile(HtmlInputFile f_IFile)
{
//获取由客户端指定的上传文件的访问
HttpPostedFile upFile=f_IFile.PostedFile;
//得到上传文件的长度
int upFileLength=upFile.ContentLength;
//得到上传文件的客户端MIME类型
string contentType= upFile.ContentType;
byte[] FileArray=new Byte[upFileLength];
Stream fileStream=upFile.InputStream;
fileStream.Read(FileArray,0,upFileLength);
return FileArray;
}
这个方法返回的就是上传的文件的二进制字节流,这样我们就可以将它保存到数据库了。下面说一下这种形式的下载,也许你会想到这种方式的下载就是新建一个aspx页面,然后在它的Page_Load()事件里取出二进制字节流,然后再读出来就可以了,其实这种方法是不可取的,在实际的运用中也许会出现无法打开某站点的错误,我一般采用下面的方法:
首先,在Web.config中加入:
<add verb="*" path="openfile.aspx" type="RuixinOA.Web.BaseClass.OpenFile, RuixinOA.Web"/>
这表示我打开openfile.aspx这个页面时,系统就会自动转到执行RuixinOA.Web.BaseClass.OpenFile这个类里的方法,具体实现如下:
using System;
using System.Data;
using System.Web;
using System.IO;
using Ruixin.WorkFlowDB;
using RXSuite.Base;
using RXSuite.Component;
using RuixinOA.BusinessFacade;
namespace RuixinOA.Web.BaseClass
{
/**////<summary>
/// NetUFile的摘要说明。
///</summary>
public class OpenFile: IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
//从数据库中取出要下载的文件信息
RuixinOA.BusinessFacade.RX_OA_FileManager os= new RX_OA_FileManager();
EntityData data= os.GetFileDetail(id);
if(data!= null&& data.Tables["RX_OA_File"].Rows.Count> 0)
{
DataRow dr=(DataRow)data.Tables["RX_OA_File"].Rows[0];
context.Response.Buffer= true;
context.Response.Clear();
context.Response.ContentType= dr["CContentType"].ToString();
context.Response.AddHeader("Content-Disposition","attachment;filename="+ HttpUtility.UrlEncode(dr["CTitle"].ToString()));
context.Response.BinaryWrite((Byte[])dr["CContent"]);
context.Response.Flush();
context.Response.End();
}
}
public bool IsReusable
{
get{ return true;}
}
}
}
执行上面的方法后,系统会提示用户选择直接打开还是下载。这一部分我们就说到这里。
第四部分:
这一部分主要说如何上传一个Internet上的资源到服务器。前面我们有一篇文章详细介绍了使用方法,这里我不再多说。
请参考:将动态页面转化成二进制字节流
第五部分:总结
今天简单的介绍了几种文件上传与下载的方法,都是在实际的项目开发中经常需要用到的,可能还有不完善的地方,希望大家可以互相交流一下项目开发中的经验。写的不好的地方,请指正,谢谢!
如何防止asp数据库databass被下载
建站一段时间后总能听得到什么什么网站被挂马,什么网站被黑。好像入侵挂马似乎是件很简单的事情。其实,入侵不简单,简单的是你的网站的必要安全措施并未做好。
有条件建议找专业做网站安全的sine安全来做安全维护。
一:挂马预防措施:
1、建议用户通过ftp来上传、维护网页,尽量不安装asp的上传程序。
2、对asp上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。这其中包括各种新闻发布、商城及论坛程
序,只要可以上传文件的asp都要进行身份认证!
3、asp程序管理员的用户名和密码要有一定复杂性,不能过于简单,还要注意定期更换。
4、到正规网站下载asp程序,下载后要对其数据库名称和存放路径进行修改,数据库文件名称也要有一定复杂性。
5、要尽量保持程序是最新版本。
6、不要在网页上加注后台管理程序登陆页面的链接。
7、为防止程序有未知漏洞,可以在维护后删除后台管理程序的登陆页面,下次维护时再通过ftp上传即可。
8、要时常备份数据库等重要文件。
9、日常要多维护,并注意空间中是否有来历不明的asp文件。记住:一分汗水,换一分安全!
10、一旦发现被入侵,除非自己能识别出所有木马文件,否则要删除所有文件。
11、定期对网站进行安全的检测,具体可以利用网上一些工具,如sinesafe网站挂马检测工具!
二:挂马恢复措施:
1.修改帐号密码
不管是商业或不是,初始密码多半都是admin。因此你接到网站程序第一件事情就是“修改帐号密码”。帐号
密码就不要在使用以前你习惯的,换点特别的。尽量将字母数字及符号一起。此外密码最好超过15位。尚若你使用
SQL的话应该使用特别点的帐号密码,不要在使用什么什么admin之类,否则很容易被入侵。
2.创建一个robots.txt
Robots能够有效的防范利用搜索引擎窃取信息的骇客。
3.修改后台文件
第一步:修改后台里的验证文件的名称。
第二步:修改conn.asp,防止非法下载,也可对数据库加密后在修改conn.asp。
第三步:修改ACESS数据库名称,越复杂越好,可以的话将数据所在目录的换一下。
4.限制登陆后台IP
此方法是最有效的,每位虚拟主机用户应该都有个功能。你的IP不固定的话就麻烦点每次改一下咯,安全第一嘛。
5.自定义404页面及自定义传送ASP错误信息
404能够让骇客批量查找你的后台一些重要文件及检查网页是否存在注入漏洞。
ASP错误嘛,可能会向不明来意者传送对方想要的信息。
6.慎重选择网站程序
注意一下网站程序是否本身存在漏洞,好坏你我心里该有把秤。
7.谨慎上传漏洞
据悉,上传漏洞往往是最简单也是最严重的,能够让黑客或骇客们轻松控制你的网站。
可以禁止上传或着限制上传的文件类型。不懂的话可以找你的网站程序提供商。
8. cookie保护
登陆时尽量不要去访问其他站点,以防止 cookie泄密。切记退出时要点退出在关闭所有浏览器。
9.目录权限
请管理员设置好一些重要的目录权限,防止非正常的访问。如不要给上传目录执行脚本权限及不要给非上传目录给于写入权。
10.自我测试
如今在网上黑客工具一箩筐,不防找一些来测试下你的网站是否OK。
11.例行维护
a.定期备份数据。最好每日备份一次,下载了备份文件后应该及时删除主机上的备份文件。
b.定期更改数据库的名字及管理员帐密。
c.借WEB或FTP管理,查看所有目录体积,最后修改时间以及文件数,检查是文件是否有异常,以及查看是否有异常的账号。
网站被挂马一般都是网站程序存在漏洞或者服务器安全性能不达标被不法黑客入侵攻击而挂马的。
网站被挂马是普遍存在现象然而也是每一个网站运营者的心腹之患。
您是否因为网站和服务器天天被入侵挂马等问题也曾有过想放弃的想法呢,您否也因为不太了解网站技术的问题而耽误了网站的运营,您是否也因为精心运营的网站反反复复被一些无聊的黑客入侵挂马感到徬彷且很无耐。有条件建议找专业做网站安全的sine安全来做安全维护。
什么是ASP网站
ASP简介
Active Server Pages简介(1)
静态的站点内容
目前Internet上的许多站点,仍然提供“静态”(static)的主页内容。所谓“静态”,指的就是站点的主页内容是“固定不变”的。
当浏览器通过Internet的HTTP(Hypertext Transport Protocol)协议,向站点服务器(Web Server)要求提供主页的内容时,站点服务器收到要求后,就传送愿已设计好的静态的HTML的文件数据给浏览器。
一个“静态”的站点,若要更新主页的内容,必须手动的来更新其HTML的文件数据。
动态的站点内容
当在浏览器上填好表格(form)的输入数据,以提供HTTP要求时,可以在站点服务器中执行的应用程序,而不只是一个HTML文件。站点服务器收到要求执行的应用程序,分析表格(form)的输入数据,将执行的结果以HTML的格式传送给浏览器。
ACTIVE SERVER PAGES
Active server pags(动态服务器主页,简称ASP),内含于Internet Information
Server(IIS)当中,提供一个服务器端(server-side)的scripting环境,让你产生和执行动态,交互式,高效率的站点服务器的应用程序。
你不必担心浏览器是否能执行你设计出来的Active Server Pages,你的站点服务器会自动将Active Server Pages的程序码,解释为标准HTML格式的主页内容,在送到用户端的浏览器上显示出来。用户端只要使用常规可执行HTML码的浏览器,即可浏览Active Server Pages所设计的主页内容。
Active Server Pages的特点是:
一:无须Compile编译:容易产生,无须Compile编译或Link链接即可执行。
二:使用常规文本编辑器,如Windows的记事本,即可设计。
三:与浏览器无关(Browser Independence):用户端只要使用常规的可执行HTML玛的浏览器,即可浏览Active Server Pages所设计的主页内容,
Script语言(Vbscript,Jscript)是在站点服务器(Server端)执行,用户不需要执行这些Script语言。
四:面向对象(Object_Orient).
五:可通过ActiveX Server components(ActiveX服务器组件)来扩充功能。
ActiveX Server component,可使用Visual Basic,Java,Visual C++,COBOL等语言来实现。
六:Active Server Pages与任何AcTiveX scripting语言兼容。除了可使用VBscript或JScript语言来设计,并可通过Plug-in的方式,使用由third party所提供的其他譬如REXX,perl,Tcl等scripting语言。script引擎是处理script的COM(Component Object Model)对象。
七:Active server Pages的源程序代码,不会传到用户的浏览器,因此可以保护辛辛苦苦写出来的源程序不会外泻。传到用户浏览器的是Active Server Pages执行的结果的常规HTML码。
八:使用server端script产生client端script,你可以使用ASP程序码,在站点服务器执行script语言(VBscript或 Jscript),来产生或更改在client端执行的script语言。
Active Server Pages简介(2)
ASP对象
Active Server Pages提供五个内置的“对象”(object),你可以直接调用:
一:Request:取得用户信息。
二:Response:传送信息给用户。
三:Server:提供访问服务器的方法(methods)和属性(properties)的功能。
四:Applicatin:一个应用程序,可以在多个主页之间保留和使用一些共同的信息。
五:Session:一个用户,可以在多个主页之间保留和使用一些共同的信息。
在多个主页之间共享信息
ASP开发的应用程序,可以在多个主页之间保留和使用一些共同的信息,ASP提供两种适用范围,如下:
一:Application:Application的所有信息,在一个应用程序,多个主页之间,
可以让所有的用户共同使用。
二:Session:Session的所有信息,仅适用于一个用户。
Active Server Pages简介(3)
.asp文件
Active Server Pages(ASP)制作成.ASP扩展名的文件,一个.asp文件是一个
文本文件,包括:
1.HTML标记(tags)
2.VBscript或Jscript语言的程序码
3.ASP语法
ASP语法
ASP并不是一个script语言,而是提供一个可以集成script语言(VBscript或 Jscript)到HTML主页的环境。
HTML标记(tags)使用“<...>”将HTML程序码包含起来,以与常规的文本区分开来;而ASP使用“<%...%>”将ASP的script程序码包含起来。
范例:asp1.asp
显示现在的日期时间
譬如站点服务器asp1.asp文件:
现在是:<%=now%>
再用户端显示:
现在是:1998/5/17皮棉3:11:20
让我们再看一个例子。
范例:asp2.asp
重复循环
这个ASP例子,在用户端浏览器,浏览执行的结果如下,显示五个重复的句子,字体越来越大。
站点服务器asp2.asp文件的ASP源代码如下:
<%for i= 1 to 5%>
<font size=<%= i%>
color=#0000ff>快速掌握Internet技术
</font><br>
<%next%>
Active Server Pages的源代码,不会传到用户的浏览器,可以保护你写的源程序不会外漏。因此,在用户端观看到的是常规的HTML码,你的站点服务器会自动将Active Server pages的程序代码,解释为标准的HTML格式的主页内容,如下:
<font size=1 color=#0000ff>快速掌握Internet技术
</font><br>
<font size=2 color=#0000ff>快速掌握Internet技术
</font><br>
<font size=3 color=#0000ff>快速掌握Internet技术
</font><br>
<font size=4 color=#0000ff>快速掌握Internet技术
</font><br>
<font size=5 color=#0000ff>快速掌握Internet技术
</font><br>
传送字符串到用户端的浏览器
Response.write方法,是最常用的传送字符串到浏览器的方法。语法如下:
Response.write字符串
以下的例子向用户打招呼:
<%
Response.write"欢迎光临"
%>
也可以用如下方法:
<%...%>
欢迎光临
<%...%>
链接到指定的URL地址
使用Response.redirect方法,可以连接到指定的URL地址。语法如下:
Response.redirect URL
譬如,自动连接到首页:
<%
Response.Redirect"homepage.asp"
%>
须注意一点,若此.asp主页的内容已传送给用户,在使用Response.redirect
,将发生错误!
Active Server Pages简介(4)
ASP Script语法
使用VBscript或Jscript的ASP语法
ASP与任何ActiveX SCripting语言兼容。除了可使用VBscript或Jscript语言来设计,还可以通过plug-in的方式,使用由third party所提供的其他譬如REXX,Perl, Tcl等scripting语言
<script>标记
ASP默认的script语言vbscript,若要设定某一段ASP程序代码使用的script语言,可以使用"<script runat=server langrage=...>...</script>"加以设定,譬如ASP程序码使用Jscript语言:
<html>
<body>
<%call函数1%>
</body>
</html>
<script runat=server langrage=Jscript>
function函数1()
{
Response.write"叫到我了";
}
</script>
设定某一主页的script语言使用"<%@ language=...%>"加以设定,语法如下:
<%@ language= VBscript%>
注意:@和LANGUAGE之间一定要有空格。
一个主页使用多种语言
你可以在一个主页当中使用VBscript和jscript语言。方法如下:
一:使用多个"<script runat=server language=...%>...</script>"加以设定。
二:使用多个"#include"的语法。
#INCLUDE包含其他文件
你可以在ASP程序码中插入另外一个"被包括"的文件,执行到此时,先执行"被包括"文件,再继续执行下去。语法如下:
<!--#include virtual|file="filename"-->
其中virtual代表虚拟的文件地址,FILE代表绝对的文件地址,如下:
<!--#include virtual="/booksamp/test.inc"-->
<!--#include file="test/test.inc"-->
被包括的#include文件,也可在包含其他的"被包括"文件。
不能使用ASP程序码来设定"被包括"的#INCLUDE文件。如下的#INCLUDE文件将无法正确的执行:
<%name=(test&".inc"%>
<!--#include file="<%=name%>"-->
#INCLUDE不能置于<%...%>当中。如下的#INCLUDE文件将无法正确的执行:
<%
for i=1 to n
...
<!--#include file="test.inc"-->
next
%>
将#include置于<%...%>外即可。如下的#include文件可正确的执行:
<%
for i=1 to n
...
%>
<!--#include file="test.inc"-->
<%next%>
Active Server Pages简介(5)
表格的处理
表格(form)
将输入的数据传送到服务器的方法,是使用HTML标记<form>...</form>的表格,在用户端浏览器输入数据,点击"submit"按钮后,将输入的数据传送到服务器加以处理。表格的语法如下:
<form action=url method=get|post name="formname" onreset=event onsubmit=event target=window>
</form>
·action:处理输入的数据的站点服务器程序的url地址。
·method:输入的数据传送到服务器的方式,如下:
get:将输入的数据加在action设定的url地址后面,传送到服务器
post:按照http post传输数据的方式,将输入的数据传送到服务器
·name:设定form的名称
·onreset:点击"reset"的按钮时执行所设定的子程序event
·onsubmit:点击"submit"的按钮是执行的子程序event
·target:指定输入数据结果所显示的窗口名称
ASP取得表格(form)输入数据的方法
由表格的method可知,用户浏览器可以用如下的两种方法传送数据
1:get:用户端将数据加到url后,格式为"?字段1=输入数据1&字段2=输入数据2&...",再将它送到服务器.譬如ACTION设为,字段Name的输入数据为jack,字段age的输入数据为15,则使用的get方法,传给站点服务器的数据为.
2:post:用户端利用http信息数据字段将数据传送到服务器.
二:post:用户端利用HTTP信息数据字段传送到服务器。
ASP取得表格(form)输入数据的方法,是使用Active Server Pages一个内置的"对象"(object)---request,依据get,post方法而异:
get:使用"输入数据=Request.querystring("字段名"),将附加于url后的
数据取出,以取得此字段的输入数据。
post:使用"输入数据=Request.form("字段名"),读取HTTP信息数据字段,以取得字段的输入数据。
Request.querystring范例
范例:aspform.asp
使用Request.querystring("字段名"),将附加于url后的数据取出,譬如:
<a rel="external nofollow" href="aspform.asp?name=jack&age=15">
按此处,通过request.querystring取得name,age</a><p>
Name:<%=request.querystring("name")%><br>\
Age:<%=Request.querystring("age")%>
Request.querystring取出字段name的输入数据为Jack,字段Age的输入数据为15,
在用户端使用浏览器,浏览执行的结果如下:
按此处,通过request..querystring取得name,age
Name:jack
Age:15
Get范例
请看个例子。
范例:aspform.asp
这个例子的表格(form)使用Get方法,在用户端使用浏览器,浏览执行的结果如下,输入表格点击"写完了"按钮后,将显示处理的结果。
站点服务器aspform.asp文件的程序码如下,点击"submit"按钮后,执行站点服务器的asp1b.asp:
<form action="asp1b.asp" method="get">
姓名:<input type=text name="input1" value="大名">
<p>
特性:<select name="input2">
<option>戴眼睛
<option>小肚微凸
<option>漂亮
</select>
<p>
<input type=submit value="写完了">
</form>
asp1b.asp文件的ASP程序代码如下,由于表格(form)使用get方式,ASP程序码
使用"输入数据=request.querystring("字段名"),将附加于URL后的数据取出,
以取得此段的输入数据:
<html><body>
<%=request.querystring("input1")%>你好,你的特性是<%=
request.querystring("input2")%>
</body></html>
Request.form
Request.form读取HTTP信息数据的字段,以取得使用POST方式的表格form输入数据。语法如下:
request.form(name)[(index)|.count]
· name:字段名。
· index:当同一字段输入多个值时,指针值index指定要读取同一字段的那一个值。
范围由1到request.form(name).count
· count:由request.form(name).count可知name字段输入几个值。若无此name字段,
则count=0。
譬如以下的例子,其中input1为字段名,request.form("input1").count
得知input1字段输入几个值:
<%
for I= 1 to request.form("input1").count
response.write request.form("input1")(I)&"<br>"
next
%>
若input1有两个输入值,譬如为value1和value2,则以上的例子,在浏览器上将
显示:
value1
value2
同一字段输入多个值时,若未采用指针值index指定要读取哪一个值时,将得到多个值,各个值中间以逗点分隔。
你可以使用"for each item in request.form("字段名"),重复取得此字段输入的所有多个输入值,以上的例子也可由以下的程序得到相同的结果:
<%
for each item in request.form("input1")
response.write item&"<br>"
next
%>
你可以使用"for each x in request.form",重复取得所有字段的输入值,譬如:
<%for ecah x in request.form%>
<%request.form(<%=x%>)=<%= request.form(x)%><br>%>
<% next%>
若字段input1有两个输入值,譬如为value1和value2,则以上的例子,在浏览器上将
显示:
inut1=value1
input2=value2
Active Server Pages简介(6)
POST范例
让我们看一个POST的例子。
范例:aspform.asp
站点服务器aspform.asp文件的ASP程序代码如下:
<form action="asp1a.asp" method="post">
姓名:<input type=text name="input1" value="大名">
<p>特性:
<select multiple name="input2">
<option>戴眼睛
<option>小肚微凸
<option>漂亮
</select>
<p>
<input type=submit value="写完了">
</form>
写完后点击“写完了"按钮时,所执行的asp1a.asp文件的ASP程序代码如下:
<%=request.form("input1")%>你好,你的特性是<%=request.form("input2")%>
若传给asp1a.asp的值,可能为:
input1=jack&input2=小肚微凸+漂亮
则在用户端使用浏览器,浏览执行的结果如下,输入表格点击"写完了"按钮后,将显示处理的结果。
jack,您好,您的特性是小肚微凸,漂亮
若你设定name字段名,则站点服务器将解析此字段的输入值。若你需要未经解析的输入值,只须使用"request.form",不含name字段名。譬如asp1a.asp的ASP程序代码如下:
<%= request.form%>
若输入的与上面的例子相同,于用户端使用浏览器,浏览未经解析的输入值如下:
input1=jack&input2=%A4p%A8%7B%B7L%A5Y&input2=%BA%7D%ABG
Request.querystring
Request.querystring,读取HTTP信息数据字段位,以取得使用GET方式的表格form
输入的数据。
输入的字段和数据将接在<form action="URL地址">所设定的URL地址后面,
先加一个"?",字段和数据之间用"&"分隔之,譬如:
URL地址?input1= value1&input2=value2
Request.querystring将解析出输入的数据value1,value2.
语法如下:
request.querystring(name)[(index)|.count]
· name:字段名.
· index:当同一字段输入多个值时,指针值index指定要读取同一字段的那个值。
范围由1到request.querystring(name).count.
· count:由request.querystring(name).count可得知name字段输入几个值。
若无此name字段,则count=0.
Request.querystring解析在servervariables的Query_string变量。
同一字段输入多个值时,若未采用指针值index指定要读取哪个值,则将得到多个值,各个值中间以逗点分隔。
Active Server Pages简介(7)
站点数据库访问法
站点数据库的解决方案
如何让用户从浏览器画面中,通过internet或intranet,查询站点数据库的数据,甚至输入,更新和删除站点服务器的数据库信息呢?
访问数据库的解决方案有如下几种:
1:CGI(Commom Gateway Interface):传统方式。
2:IDC(Internet Database connector,Internet数据库连接器)
与IIS(Internet Information Server):简易的站点数据库访问解决方案。
3:ADC(Advanced Data Connector,先进的数据库连接器):在用户端的
浏览器上执行数据查询动作的频繁的数据查询解决方案。
4:ADO(ActiveX Data Object,Activex数据对象)与ASP(Active Server Pages):
完整的站点数据库访问解决方案。
Active Data Object与ASP
ActiveX Data Object
问数据库,可采用ASP内置的一个Activex Server component---Database
Access component(数据访问组件),使用ActiveX Data Object
(ActiveX数据对象,简称ADO)的技术,让你可以与Active Server pages(简称ASP)
结合,以提供访问数据库的功能。\
ActiveX Data Object(数据库访问组件,简称ADO)是什麽东西呢?Active Data Object的技术,让你可以与Active Server Pages结合,以建立提供数据库信息的主页内容,在主页画面执行Structured Query Language(结构化查询语言,简称SQL)命令,让用户在浏览器画面中输入,更新和删除站点服务器的数据库信息。
ADO使用RecordSets对象,作为数据的主要接口。
ADO可使用Vbscript,JavaScript语言来控制数据库的访问,与查询结果的输出显示画面。
ADO可连接多种的数据库,包括SQL Server,Oracle,Informix等支持ODBC的数据库。
ADO执行环境
在服务器端所需要的ADO执行环境如下:
1:windows NT server.
2:安装Internet Information Server(IIS)3.0(含)以上版本.
在用户端所需要的ADO执行环境,只需要一般的浏览器即可.
Active Server Pages简介(8)
数据库数据来源设定
若要访问NT站点的数据库,须于"控制台"中的"odbc"建立数据库名称(用户数据来源名称),数据库所用的驱动程序和数据库文件等.
新建数据库来源的步骤
执行"设定"的"控制台"中的"odbc",选择"用户数据来源名称",点击"添加"按钮,选定数据库所用的驱动程序,如为Access数据库,选定"Microsoft Access Driver",点击"完成"按钮.
在odbc设定中,在"数据来源名称"输入数据库名称,以便以后在程序中调用称呼,点击"选定按钮,选择数据库文件,然后点击"确定"按钮即可.
ADO数据库设计要领
只要几个步骤,就可以应用 Active Data Object(ActiveX数据对象,简称ADO)的技术,在站点服务器执行访问查询数据库的动作.
第一步:
ADO数据库设计要领的第一步,就是使用"Server.createobject"建立连接的对象,并使用"Open"打开待访问查询的数据库,如下
set conn= server.createobject("adodb.connection")
conn.open"数据库名称"
数据库名称即为在"ODBC"设定的"数据来源名称".
第二步
第二步设定SQL命令,使用"Execute"命令,即可开始执行访问查询数据库的动作.如下:
其中conn为第一步所设定的名称:
set rs= conn.execute(SQ)命令
第三步
第三步,使用如下recordsets对象的命令,显示查询的结果,其中rs为第二步所定义的名称:
.rs.fields.count:recourds的字段数.
.rs(i).name:第i(指针)个字段名,i由0算起到rs.fields.count-1.
.rs(i):读取第i(指针)个字段的记录,i由0算起到rs.fields.count-1.
.rs("字段名"):读取指定的字段的记录.
.rs.eof:是(true)否(false)已指定最末笔.
.rs.movenext:将指针移到下一笔.
.rs.moveprev:将指针移到上一笔.
.rs.movefirst:将指针移到第一笔.
.rs.movelast:将指针移到最末笔.
.rs.getrows:将查询结果存于数组当中,如v= rs.getgows(100),再读取数组v(col,row)的值即为查询的记录.
.rs.properties.count:得到ADO的Connection或Resultset的属性总数.
.rs.properties(item).name:得到ADO的Connection或 resultset的属性名称
.rs.properties(item):得到ADO的Connection或Resultset的属性值.
最后,在显示后使用如下的命令,关闭数据库:
rs.close
conn.close
譬如,将查询结果显示于一个表格的程序码如下:
<table border=1>
<tr>
<%for i=0 to rs.fields.count-1%>
<td><b><%=rs(i).name%></b></td>
<%next%>
</tr>
<%do while not rs.eof%>
<tr>
<%for i=0 to rs.fields.count-1%>
<td valign=top><%=rs(i)%></td>
<%next%>
</tr>
<%
rs.movetext
loop
rs.close
conn.close
%>
</table>
Active Server Pages简介(9)
查询数据
若要查询数据库的数据,则使用select的sql命令.
select的基本语法如下:
select字段名#1,字段名#2,...
from数据表名#1,数据表名#2,...
where条件表达式
order by字段名#1,字段名#2,...
.select:所接的字段明为待查询的字段,各字段名之间以逗号隔开.
.from:所接的数据表名称为待查询的数据库数据表名称,各数据表名之间以逗号隔开.
.where:所接的条件表达式为设定的查询条件表达式.
.order by:所接的字段名为排序的字段,将查询的数据加以排序.
指定多个字段时,先以字段名#1排序,若数据相同在按字段#2排序,...,各字段之间以逗号隔开.
更改数据库数据
若要更改数据库的记录,既在数据库中增加,更新,删除记录等,则可使用insert, update, delete的sql命令
......
文章到此结束,如果本次分享的asp网站下载功能和asp最新版本的问题解决了您的问题,那么我们由衷的感到高兴!