仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 594|回复: 7
打印 上一主题 下一主题

[学习教程] ASP编程:文件下载的一个类

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:38:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的;下载///<summary>
///下载文件
///</summary>
publicclassBDDownLoadFile
{
privatestringUrl;//要下载的文件URL地点
privatestringSavePath;//要保留的文件的目次
privatestringerrMsg;//保留毛病信息
privatestringRegValue=@"http://([w-]+.)+[w-]+(/[w-./?%&=]*)?";
privatestringSaveFile;//天生的文件

publicBDDownLoadFile(stringurl,stringpath)
{
Url=url;
SavePath=path;
this.SaveFile=GetFileName();
}

///<summary>
///前往毛病信息
///</summary>
publicstringErrorMessage
{
get
{
returnthis.errMsg;
}
}

publicstringGetSaveFile
{
get
{
returnthis.SaveFile;
}
}
publicboolDownLoadFile()
{
boolresult=true;
if(!CheckUrl(this.Url))
{
this.errMsg="网址分歧法!";
returnfalse;
}
WebClientobjWC=newWebClient();
objWC.Credentials=CredentialCache.DefaultCredentials;
try
{
byte[]tmpData=objWC.DownloadData(this.Url);
if(tmpData.Length>0)
{
FileStreamobjFS=newFileStream(this.SaveFile,FileMode.Create);
objFS.Write(tmpData,0,(int)tmpData.Length);//向文件写进数据
objFS.Close();
this.errMsg="无数据!";
}
else
{
result=false;
this.errMsg="没有吸收就任何数据!";
}
}
catch(System.Net.WebExceptione)
{
this.errMsg+="<li>下载数据时产生毛病!"+e.Message;
returnfalse;
}
catch(System.UriFormatExceptione)
{
this.errMsg+="<li>会见的网址有效!"+e.Message;
returnfalse;
}
catch(Exceptione)
{
this.errMsg="毛病信息:<li>."+e.Message;
result=false;
}
finally
{
objWC.Dispose();
}
returnresult;
}

///<summary>
///反省网址是不是正当
///</summary>
///<paramname="chkUrl">要反省的网址</param>
///<returns></returns>
privateboolCheckUrl(stringchkUrl)
{
Regexreg=newRegex(RegValue);
Matchmatch=reg.Match(chkUrl);
returnmatch.Success;
}

///<summary>
///获得网址是不是有文件,假如有文件,则处置,若没有,则前往.html
///</summary>
///<paramname="chkUrl"></param>
///<returns></returns>
privatestringGetFileType(stringchkUrl)
{
if(chkUrl.LastIndexOf("/")==(chkUrl.Length-1))//没有详细文件
return"html";
intj=0;
for(inti=0;i<chkUrl.Length;i++)
{
if(chkUrl.IndexOf("/",i)>-1)
{
i=chkUrl.IndexOf("/",i);
j++;
}
}
if(j<3)
return"html";
//获得"/"后的字符,然后得出文件范例
stringend=chkUrl.Substring(chkUrl.LastIndexOf(".")+1);
switch(end)
{
case"asp":
case"aspx":
case"jsp":
case"php":
return"html";
default:
returnend;
}
}

privatestringGetFileName()
{
stringfileName=this.SavePath+""+System.DateTime.Now.Year.ToString()+System.DateTime.Now.Month.ToString()+System.DateTime.Now.Day.ToString()+System.DateTime.Now.Minute.ToString()+System.DateTime.Now.Second.ToString()+Common.MakeRandom(4).ToString()+"."+GetFileType(this.Url);
for(;File.Exists(fileName);)
{
fileName=this.SavePath+""+System.DateTime.Now.Year.ToString()+System.DateTime.Now.Month.ToString()+System.DateTime.Now.Day.ToString()+System.DateTime.Now.Minute.ToString()+System.DateTime.Now.Second.ToString()+Common.MakeRandom(4).ToString()+""+GetFileType(this.Url);
}
returnfileName;
}
}//BDDownLoadFileend

</p>ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。ApacheASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。
小妖女 该用户已被删除
沙发
发表于 2015-1-20 10:50:31 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
只想知道 该用户已被删除
板凳
发表于 2015-1-29 06:49:32 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
地板
发表于 2015-2-5 23:39:01 | 只看该作者
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
金色的骷髅 该用户已被删除
5#
 楼主| 发表于 2015-2-14 05:32:30 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
若相依 该用户已被删除
6#
发表于 2015-3-4 04:56:13 | 只看该作者
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
爱飞 该用户已被删除
7#
发表于 2015-3-11 17:08:07 | 只看该作者
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
海妖 该用户已被删除
8#
发表于 2015-3-19 02:36:35 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-25 12:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表