冷月葬花魂 发表于 2015-1-16 23:37:06

ASP网页设计一个复杂的上传类

使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。上传一向以来,良多项目都请求上传,每次都要写上传的代码,对照贫苦。便想写一个类来完成上传的义务,以便在开辟中加重包袱。写的很复杂,但的确有用^_^




usingSystem;
usingSystem.Web;
usingSystem.IO;
usingSystem.Text;

namespaceupfile
{
///
///upfile类完成文件的上传和删除功效
///
publicclassMyUpload
{
privateSystem.Web.HttpPostedFilepostedFile=null;
privatestringsavePath="";
privatestringextension="";
privateintfileLength=0;
//上传控件
publicSystem.Web.HttpPostedFilePostedFile
{
get
{
returnpostedFile;
}
set
{
postedFile=value;
}
}


//存储路径
publicstringSavePath
{
get
{
if(savePath!="")returnsavePath;
return"C:";
}
set
{
savePath=value;
}
}


//文件巨细
publicintFileLength
{
get
{
if(fileLength!=0)
{
returnfileLength;
}
return1024;
}
set
{
fileLength=value*1024;
}
}


//文件格局
publicstringExtension
{
get
{
if(extension!="")
{
returnextension;
}
return"";
}
set
{
extension=value;
}
}



publicstringPathToName(stringpath)
{
intpos=path.LastIndexOf("");
returnpath.Substring(pos+1);
}


//上传文件
publicstringUpload()
{
if(PostedFile!=null)
{
try
{
stringfileName=PathToName(PostedFile.FileName);
if(!fileName.EndsWith(Extension))
{
return"你必需选择"+Extension+"这个格局的文件!";
}
if(PostedFile.ContentLength>FileLength)
{
return"文件太年夜!";
}
if(File.Exists((SavePath+""+fileName)))
{
return"文件名反复!";
}
else
{
PostedFile.SaveAs(SavePath+""+fileName);
return"上传文件乐成!";
}
}
catch(System.Exceptionexc)
{
returnexc.Message;
}
}
return"请选择文件上传!";
}

//显现文件名
publicstringupfilename()
{
stringfileName=PathToName(PostedFile.FileName);
returnfileName;
}

//显现具体路径
publicstringurl()
{
stringfileName=PathToName(PostedFile.FileName);
stringurls=SavePath+""+fileName;
returnurls;
}

//删除上传的文件
publicstringdelete(stringurl)
{

try
{

File.Delete(url);
return"删除文件乐成!";

}
catch(System.Exceptionexc)
{
returnexc.Message;
}

}


}
}






利用办法:
1.在援用里增加upfile.dll的援用
2.usingupfile;
3.privateMyUploadmyupfile;
4.myupfile=newMyUpload();//实例化
myupfile.PostedFile=this.File1.PostedFile;//设置上传控件
myupfile.SavePath=Server.MapPath("");//设置上传路径

5.上传按钮:
this.Label2.Text=myupfile.Upload();//上传
if(this.Label2.Text=="上传文件乐成!")
{
this.upfile.Text=myupfile.upfilename();//显现文件名
this.url.Text=myupfile.url();//显现文件路径
}

6.删除按钮:
this.Label2.Text=myupfile.delete(this.url.Text);
if(this.Label2.Text=="删除文件乐成!")
{
this.upfile.Text="";//显现文件名
this.url.Text="";//显现文件路径
}



aspx:

(<formid="Form1"method="post"runat="server"enctype="multipart/form-data">

<INPUTid="File1"style="Z-INDEX:102;LEFT:304px;POSITION:absolute;TOP:184px"type="file"
name="File1"runat="server">)

</p>因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。

简单生活 发表于 2015-1-20 07:41:43

用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。

活着的死人 发表于 2015-1-25 19:21:05

我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。

只想知道 发表于 2015-2-2 19:05:39

兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的

乐观 发表于 2015-2-8 04:22:17

不能只是将它停留在纸上谈兵的程度上。

莫相离 发表于 2015-2-24 05:35:07

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

变相怪杰 发表于 2015-3-15 01:46:23

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

小女巫 发表于 2015-3-21 15:54:21

完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
页: [1]
查看完整版本: ASP网页设计一个复杂的上传类