用ASP.NET开发网络硬盘的研究与实现

来源 :网络与信息 | 被引量 : 0次 | 上传用户:zxcfs
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  1 引言
  
  随着Internet的飞速发展,基于WEB的应用系统层出不穷。在日常生活和办公环境中,我们经常需要通过网络存放文件或者共享数据,常见的FTP、E-mail、MSN/QQ等都能实现文件的传送,但是各有优缺点。其中,“Ftp”功能最为强大,但使用起来比较麻烦,通常需要安装专用客户端软件,适合大批量集中传输文件的情况;“E-mail”的传送比较方便,易使用,但是附件文件有限,适合文件小、数量少的文件传输情况;MSN/QQ使用方便、实时传递信息,但需要双方同时在线,也不宜传输大容量数据。网络硬盘综合了以上各种工具的诸多优点,不仅是一种功能强大、操作便捷、大容量、异步存储的工具,更可以共享数据,方便管理用户操作权限。
  网络硬盘是一种当前流行的基于WEB的应用系统,它除了文件传输、存储等功能外,独特的分享、分组功能更是突破了传统存储的概念,具有无需携带、随时随地、操作便捷、分组管理、四级共享(组内共享、组间共享、全员共享、超级共享)、稳定安全等特点。
  本文就是根据自己的实际开发经验来研究与实现用ASP.NET编程实现网络硬盘的具体方法和步骤。
  
  2 网络硬盘主要功能的实现方法
  
  (1)用户注册及登录
  初次使用网络硬盘的用户有两种方式登录系统,一种是用户先注册由系统管理员审核通过后登录系统,另一种是由管理员指定每个用户的初始用户名与密码,用户登录后再修改用户名与密码。
  注册时根据管理员后台参数设置,可限制同一IP不能同时注册、注册时要验证邮箱的信息等等。
  登录时根据管理员后台参数设置,提示用户未审核、用户已被锁定、用户有效期已过等等。
  若登录成功后进入系统主界面,该区域就是用户自己的空间管理区,在这里可以进行类似资源管理器中的各种操作。
  
  (2)用户管理
  要想让用户按章办事,有条不紊,必须对所有用户进行统一管理。系统管理员只要输入特定的用户名与密码即可登录进入系统后台管理区域,可以输入用户名来快速查找一个用户并对其进行操作。具体操作项如下:
  锁定用户,正常情况下用户处于解锁状态,可以正常登录,若遇特殊情况,系统管理员可以锁定某一用户,被锁定的用户将不能再登录直到被解锁。
  审核用户,注册用户首先需要审核注册信息,若审核通过就可以正常通过身份验证登录系统,若未通过管理员审核,将不能登录。
  添加用户,若用户数量少并且固定,就没有必要让用户自己注册,主要系统管理员在后台手工添加即可。通过此种方式添加的用户即可生效,不必再进行审核。
  删除用户,有时某一用户离开或不再使用网络硬盘,为了节省空间需要删除该用户,此用户的所有文件和数据库中相应的内容将会一并删除。
  
  (3)文件/文件夹操作及管理
  用户登录之后首次出现的区域便是自己的网络硬盘管理区,在这里可以进行类似资源管理器中的各种操作。在管理区左上方点“新建文件夹”即可新建一个文件夹(目录),点“上传文件”即可上传多个文件在此目录下。此操作区显示所有已上传的文件信息,如名称、类型图标、大小和更新日期,还可以对此文件/文件夹进行删除和重命名操作,同时也可以复制、剪切、粘贴文件,若要下载此文件直接点击文件名即可下载到本地硬盘。
  ASP.NET远程创建新文件夹和在本地机操作完全一样,.NET的IO名字空间提供了专门操作目录的类库Directory,通过调用其方法Directory.CreateDirectory(string directory)就可以实现,其中字符串directory表示新建文件夹的完整路径。
  /// <summary>
  /// 新建文件夹
  /// </summary>
  public void CreateDirectory_Click(object sender, System.EventArgs e)
  {
  try
  {
  //创建目录
  Directory.CreateDirectory(Path.Combine(FolderPath.Value, myFolder.Text.ToString()));
  }
  catch (Exception ex)
  {
  //显示错误信息
  ErrorText.Text = ex.Message;
  return;
  }
  ClientScript.RegisterStartupScript(this.GetType(), "msg", "<script>alert('文件夹已经创建!');</script>");
  //刷新上级目录
  DisplayList(FolderPath.Value);
  return;
  }
  同理,调用类库Directory其他方法可以实现如下功能:
  ● 删除目录(Delete)
  ● 移动目录(Move)
  ● 确定某个目录是否存在(Exists)
  ● 获得特定目录的子目录和(或)文件列表(GetFileSystemEntries)
  除了Directory类之外,.NET的IO名字空间也提供了专门操作文件的类库File、FileInfo,调用其相应方法可以实现如下功能:
  ● 复制文件(Copy)
  ● 删除文件(Delete)
  ● 移动文件(Move)
  ● 检索文件创建时间和属性(CreationTime、Attributes)
  
  (4)文件及目录共享
  网络硬盘最大的特点就是文件及目录共享,用户只要选择多个目录或文件后点击“共享”图标,并且设置共享权限即可。共享权限根据实际需要来划分,如组内共享、组间共享、全员共享、超级共享;只读共享、读写共享、完全共享等。该功能需要配合数据库来实现,保存共享权限,用户再根据共享权限进行相应操作。
  
  (5)文件上传与下载
  网络硬盘上的文件绝大多数是用户上传上去的,普遍的做法是提供一个供用户上传文件的页面,通过设置参数来确定一次最多可上传的文件数及允许上传文件的类型,此种方法只能单文件上传。
  在实际应用过程中,往往需要批量上传文件或将某个文件夹上传上去,经过研究与实践探索出另外一种方法,就是解压与断点续传相结合的方法。实际上,NET的Compression名字空间也提供了专门压缩与解压文件的类库GZipStream,调用其相应方法可以实现如下功能:
  //以二进制方式打开压缩文件
  using (BinaryReader BFile = new BinaryReader(File.OpenRead(ZipFile)))
  //开始解压文件
  using (GZipStream myGZS = new GZipStream(BFile.BaseStream, CompressionMode.Decompress))
  //分配解压缓冲区
  byte[] myBuffer = new byte[BFile.ReadInt32()];
  //保存解压文件
  using (BinaryWriter outFile = new BinaryWriter(File.Create(strOut)))
  outFile.Write(myBuffer, 0, myBuffer.Length);
  除了上述方法之外,也可以采用第三方软件如SharpZipLib,其功能更加强大。
  虽然网络硬盘的上传文件功能必不可少,但下载文件也同样重要,甚至有时需要下载多个文件或下载整个文件夹下的所有文件,如果这时再一个一个下载就不是很好的方法了。按照上面介绍的思路,可以考虑先压缩成一个文件然后再下载。可以利用.NET的类库GZipStream来编写,也同样可以利用第三方软件SharpZipLib来编写。
  
  3 小结
  
  通过本例可知,网络硬盘的开发涉及到了ASP.NET多方面的编程知识,是学习与应用ASP.NET的优秀实例。本文只是抛砖引玉,分析了网络硬盘的主要功能及其实现方法,其他辅助功能如换肤、查找文件、公告、留言等,可以根据实际需要添加上去,只要能举一反三、巧妙构思、灵活运用,就可以实现强大的功能,就可以编制出更完善更实用的应用程序。
  以上方法均在WIN2000 SERVER + IIS + .NET2.0环境下得到很好的验证。
  
  参考文献
  [1]李应伟,姚素霞,景丽.ASP.NET数据库高级教程(C#篇).清华大学出版社,2004,7.
  [2]章立民.用实例学ASP.NET.电子工业出版社,2004,1.
  [3]苏红超.ASP.NET深入解析.科学出版社,2003,10.
其他文献
宽带拨号上网已经变得像家常便饭一样平常,原本指望这种拨号方式的上网速度要比普通电话拨号的上网速度更快一些,但事实上我们有时会感觉到宽带拨号上网的速度没有明显的改观,甚至会比普通电话拨号的上网速度还要慢一些,这是为什么呢?其实,影响宽带拨号上网速度的因素有多种,我们必须对各种可能因素进行逐一排除,才能还宽带拨号正常的上网速度。     1.着眼散热,提高ADSL工作性能     一旦ADSL宽带“猫
期刊
■1.Windows XP注册表完全破解   现在越来越多的朋友在使用Windows XP,不过在此请使用Windows XP的朋友务必检查一下注册表中的“RegDone”键值。打开注册表编辑器,依次打开如下子键HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows NT\CurrentVersion,将字符串“RegDone”的数由“0”改为“1”,这样才算
期刊
IT企业作为知识含量高的企业,知识型员工密集,如果管理不好,或者没有把员工放在合适的位置上,他大脑里的东西、他的创造力就不能被激发出来;人才的流失也是IT企业都面临的问题。假如一个员工走掉,也就把知识带走了。另一个特点是,在IT行业里,唯一不变的就是变化本身,知识在日新月异地发展变化,员工如果没有很强的学习能力,其知识就会逐渐落伍。这样两个特点,给IT企业提出了“知识型员工管理”,了解这些特点是留
期刊
Agent是能够自主学习并可适应环境的软件实体,其能够通过感知自身和环境中的信息,自主采取行动实现一系列预先设定的目标或任务。多Agent系统是由多个自主的Agent组成,每个Agent都有自己的职责,并与其它Agent通信获取信息,互相协作完成整个问题求解。对于教务管理系统来说,其管理内容涉及到多个层面和多个领域,如人事管理、课程管理、考试管理、学位管理和学生管理等。所有这些教学管理工作往往都需
期刊
摘要:随着Internet的发展,基于B/S(浏览器/服务器)方式的信息管理平台已成为企业信息化建设的一个新趋势。针对目前研究所信息化的现状和不足,在J2EE技术的基础上,研究了工作流技术在办公自动化系统中的应用,后台使用Oracle数据库,对企业办公系统进行了改进,提出了一个通用的工作流模型,有效解决了研究所信息化建设现存问题,同时提高了办公系统的可扩展性能和可维护性,在实际应用中取得了良好的效
期刊
现在,针对WinRAR密码的破解软件层出不穷,不管密码设置得再长、再复杂,也难免成为某些暴力破解软件的猎物。那么究竟怎么做才能让我们的WinRAR加密文件固若金汤呢?     多重加密     用破解软件破解加密文件时,一般都要先指定一个目标文件,接下来根据字典使用穷举法来破解设置好的密码。经过实验,笔者把多个文件压缩在一起,然后分别给它们设置密码,破解软件就无能为力了。具体操作步骤如下:   首
期刊
本文要叙述的是会造成硬盘毁灭性故障的错误及操作,不是一般的磁盘和系统错误,这些故障通常没有先兆,一旦出现,在BIOS里也不能认出硬盘,硬盘数据挽回的可能性极小,此所谓硬盘之大敌。   一般地,现在的硬盘都加入了S.M.A.R.T的自动侦测技术,以便让用户能在致命的故障出现前看到先兆,备份好数据——但这都是针对正常操作情况下设计的,如果用户的使用方法如下所列,故障的出现将可能是无先兆的,也就是突然死
期刊
初次使用数码摄像机进行后期编辑的朋友往往弄不清楚机身上的各种端口的作用,由此导致了不能合理地利用数码摄像机的一些功能,针对这个现象,我们今天特别给初入门的朋友们详细讲解一下机身上与后期采集有关的端口,希望能给初学者提供一些小小的帮助。      从左向右依次为USB、1394和AV输出端口    一、USB端口    USB是英文Universal Serial Bus的缩写,中文含义是“通用串行
期刊
据Hkepc报道,Intel 内部评估了现有的产品命名规则后,认为有重叠及过于繁复的问题,可能对消费者造成混淆,因此计划进行品牌改革计划,涉及产品品牌共11款,并于2008年1月1日正式生效。据了解,涉及此次产品品牌更改的包括如下:  Intel Core2 Quad Processor、Intel Core2 Duo Processor、Intel Core2 Solo Processor、In
期刊
1 引言    在计算机网络技术迅速发展的今天,网络科研人员需要开发新的网络协议,为网络发展做开拓性的研究;网络设计人员需要研究如何利用现有的资源,使设计的网络达到最高效能。无论哪一方面,都需要对网络方案进行分析和评价。通过网络仿真,能对各组件的行为进行较精确的模拟,获得足够数据对系统的性能进行较准确的预测。  NS2(Network Simulator, version 2)是由美国加州Lawr
期刊