ASP编程:文件下载的一个类
无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的;下载///<summary>///下载文件
///</summary>
publicclassBDDownLoadFile
{
privatestringUrl;//要下载的文件URL地点
privatestringSavePath;//要保留的文件的目次
privatestringerrMsg;//保留毛病信息
privatestringRegValue=@"http://(+.)++(/*)?";
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。 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 我想问如何掌握学习节奏(先学什么再学什么)最好详细点? Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点) 不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍 Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件 Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
页:
[1]