`
happmaoo
  • 浏览: 4336693 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Asp.net+Xml开发网络硬盘

阅读更多
文件传送常用的三种方式FTP、Email及“网上邻居”都在一定程度上实现了文件数据的交流,但它们都主要面向“点对点”的传送,无法实现“一块空间,资源互见”的应用需求,这种基于“点对多”的共享模式需要寻求另外的传输途径,网络硬盘就是一种很好的解决方式。

  常用传输方式及其在特定环境下面临的困难

  我们经常有这样的应用需求:通过网络交换公共数据文件以实现资源共享,同时保护私有数据不被非法访问,并使用简单、直观的方式操作。我们常用的文件传输FTP、Email邮件、网上邻居都能实现文件的传送。其中,"Ftp"功能最为强大,但使用起来却稍显复杂,一大堆设置足以让许多人望而止步,尤其用户数量不可预见时,针对特殊需求用户的设置将更加繁琐;"Email"是大家所熟悉的了,但它的传送不仅需要你连入Internet,而且它的安全性也是个问题,在企业内部,财务、劳资等文件资料需通过这种方式交流不是好办法;"网上邻居"是又一种传送文件的方法,通过在本机上指定共享的Web文件夹并放置资源文件,一定范围内的用户可以访问到这些文件,然而这种方式使用的范围相当有限,通常在同一个DNS段地址内的用户才能顺利访问,其它尤其是Internet上的用户,很难使用,此外同Email类似,它的使用也不直观,很多时候你不得不在许多列表计算机上一层层展开搜索才有可能获取你想要的资源!

  由此看来,以上三种方式虽然在一定程度上实现了文件数据的交流,但它们都主要面向"点对点"的传送(你只能被动地等对方放置数据而不能主动"可视化"地索取),无法实现"一块空间,资源互见"的应用需求,这种基于"点对多"的共享方式需要寻求另外的传输途径,网络硬盘就是一种很好的解决方式。

  网络硬盘的优势

  网络硬盘(也称共享空间),是服务器上的一块硬盘空间,在这里,如果你具备足够的权限,你可以对它随意操作,就象使用你的本地计算机一样。要知道,这一切以Http的方式传输,以Web的形式展现在所有用户面前,通过浏览器这种熟悉的方式访问,这样,"一块空间,资源互见"的共享模式得以实现!

  此外,网络硬盘界面在客户端运行,它允许用户提交数据到服务器,然后在指定的范围内管理这些信息,这种处理模式大量使用在实际开发中,尤其是在构建交互式网络文档管理系统方面:网上考试系统、文件传输系统、新闻发布系统以及公司竞标系统等方面都有大量应用!

  以下使用Asp.net(Visual C#语言实现)和Xml(可扩展标记语言)开发了这样的网络硬盘系统。关于程序的开发细节及代码中使用的关键技术和难点,都有详细的讲解,参照这些说明,你完全可以开发出自己的网络硬盘。

  网络硬盘实现的功能

  我们的网络硬盘实现了以下功能:

  1、查看文件夹内容

  2、创建新文件夹同时可设置访问权限

  3、文件夹间的跳转:进入下一级,返回上一级

  4、上传文件到指定文件夹

  5、下载文件到本机或在线查看文件内容

  6、删除文件或文件夹

  开发细节及技术关键点

  1、查看文件夹内容:

  程序一开始将进入指定的根文件夹(如\NetHard),这个文件夹下的内容将通过数据绑定控件(DataGrid)来列表显示,包括以下方面:类别(区别文件夹或文件)、名称、权限(是否允许进入文件夹?是否可以下载文件?)、删除(是否允许删除文件或文件夹?)以及针对文件夹的创建者。这里,由于文件夹中内容动态变化(你不知道什么时候就有用户传送了文件或新建了文件夹或删除了它们),我们通过动态创建数据表DataTable来读取指定文件夹下的内容, 然后作为数据源与显示控件DataGrid绑定,这样,数据的显示就总是适时的。创建动态表的函数如下:

  public DataTable Bind(string fullFolderPath)//创建数据表读取文件夹内容

  {

  //以下是动态创建数据表的方法

  DataTable dt=new DataTable();

  DataRow dr;

  //首先创建数据表结构

  dt.Columns.Add(new DataColumn("type",System.Type.GetType("System.String")));//类型

  dt.Columns.Add(new DataColumn("name",System.Type.GetType("System.String")));//名称

  dt.Columns.Add(new DataColumn("action",System.Type.GetType("System.String")));//操作

  dt.Columns.Add(new DataColumn("owner",System.Type.GetType("System.String")));//创建人

  //为每一行填充数据

  foreach(string d in Directory.GetFileSystemEntries(fullFolderPath)){

   dr=dt.NewRow();//建新行

   string[] parts=d.Split(new char[]{'\\'});

   string txt=parts[parts.Length-1];//取最后一部分的字符串,它将可能是文件名或文件夹

   dr[1]=txt;//名称name

   if(File.Exists(d))//如果是文件

   {

   dr[0]="文件";//类型type

   int pos=currFullPath.IndexOf("NetHard");

   string relaUrl=currFullPath.Substring(pos);

   string

  url="http://10.80.50.1/SharedSpace/"+relaUrl+"/"+txt;//

  10.80.50.1为作者服务器地址,你应该将它修改为你所在服务器地址

   dr[2]="下载";

   }

   else if(Directory.Exists(d)){//如果是文件夹

   dr[0]="文件夹";//type类型

   string password=GetFolderPassword(d);//取得文件夹密码信息

   int type=GetFolderLimitType(d);

   if((password!="no")&&(type!=1))

   dr[2]="
  href=PasswordValidate.aspx?path="+d+">密封
";//操作action

   else

   dr[2]="进入";//操作action

   dr[3]=GetFolderOwner(d);//取文件夹创建者名

   }

   else

   Response.Write(" alert('无对象可绑定!') ");

   dt.Rows.Add(dr);//添加行

  return dt;//返回数据表

  }

  }

  这个方法取出指定文件夹下的内容分别处理:如果是文件,就显示"下载"链接指向服务器上文件的Url地址;对文件夹需要视保护与否及保护类型进一步区别处理:若"进入受限"则显示"密封"导入到密码验证页,"进入不受限"时修改查询字符串,显示"进入"链接指向初始显示页。

  2、创建新文件夹及设置访问权限:

  输入新文件夹名后,你就可以在当前路径下创建新的文件夹,Asp.net下远程创建新文件夹和在本地机操作完全一样,非常的简单,.Net的IO名字空间提供了专门的类库Directory,通过调用其方法就可以实现,语句如下:

  Directory.CreateDirectory(string directory)

  其中,字符串directory表示新建文件夹的完整路径,这个方法默认向所有用户开放新文件夹的完全读写访问权限。特殊地,对网络硬盘共享根文件夹(程序中示例为"NetHard"文件夹,你可以更改它)的创建你还可以手动进行,对应地,你需要手动设置以开放此文件夹的写入权限,在IIS下,你可以在"internet信息服务"下,对该文件夹执行"权限向导"来设置访问权限。
分享到:
评论

相关推荐

    ASP.NET+XML打造网络硬盘原理分析

    FTP、Email及网上邻居,都在一定程度上实现了文件数据的交流,但它们都主要面向“点对点”的传送,无法实现一块空间,资源互见的应用需求,这种基于点对多的共享模式需要寻求另外的传输途径,网络硬盘就是一种很好的...

    Asp.net多用户网络硬盘管理系统

    Asp.net多用户网络硬盘管理系统(包含所有的CS文件!绝对开源!赶快拿在你的项目中去吧!) <br>可以在线进行文件上传、下载、删除等管理操作,采用Url路径加密 可以进行用户读写权限的设置,配置文件为Users...

    基于Asp.net和Flex的网络硬盘源码

    基于Asp.net和Flex的网络硬盘源码 可以实现多用户管理,进行用户注册,创建文件夹和文件上传 smark.data是基于C#开发的轻量级数据访问组件。 提供以下功能封: 1)提供了跨数据库类型操作能力 2)基于程线存储的数据...

    asp.net网站开发案例集锦(源码c#版)

    asp.net2.0的有 播客 掘客 博客 威客 换物网(换客) 音乐网站 网络硬盘 投票系统 论坛 cms asp.net3.5的有 基于xml的论坛 投票系统 特点: 界面美观 含有大量注释 系统不大 易学易用 适合初学者 相信能从中学到不少...

    ASP.net实例光盘源码:

    Sample_06_01/FiletoDisk.aspx 上载文件到硬盘 Sample_06_02/CutImage.aspx 创建缩略图 Sample_06_02/Default.aspx 显示图片 Sample_06_02/DrawString.aspx 绘制图片水印 Sample_06_02/...

    ASP.NET开发典型模块大全(C#)23到26章源码

    《ASP.NET开发典型模块大全》以关键技术和热点技术为核心,通过27个典型模块和5章热点技术、全面地介绍了如何使用ASP.NET进行各领域的Web项目开发。全书共3篇分为32章,第1篇关键模块篇,覆盖网站开发的关键领域,...

    仿世纪佳缘婚介交友系统5.3 ASP+SQL

    仿世纪佳缘婚介交友系统5.3 ASP+SQL Nslove5使用手册 一、运行环境: 1、服务器要求:windows2000及更高系统版本,IIS5+以上! 2、组件要求:Jmail邮件组件、aspjpeg水印组件、上传组件(aspupload组件)、FSO...

    C#微软培训资料

    1.1 Microsoft.NET——一场新的革命.4 1.2 .NET 与 C#.6 1.3 C#语言的特点.8 1.4 小 结 .11 第二章 运行环境 全面了解.NET.12 2.1 .NET 结构.12 2.2 公用语言运行时环境与公用语言规范.13 2.3 开 发 ...

    .NETFrameworkv3.5.zip

    * 利用 ASP.NET AJAX 可以创建更有效、更具交互性并且高度个性化的 Web 体验,这些 Web 体验可以跨所有最流行的浏览器工作。 * 新的用于生成 WCF 服务的 Web 协议支持包括 AJAX、JSON、REST、POX、RSS、ATOM 和...

    ASP 小程序 权限 管理 数据库 等级 加密 搜索 探针

    2月22日 14:31 69869 LvServerInfo .NET探针 v1.0.zip 20049月29日 6:00 35804 Mail组建测试工具.zip 7月26日 10:01 3019 md5.rar 1月15日 9:58 2798 md5加密程序.rar 9月15日 22:48 23796 MD5密码自动收录系统...

    多用户网络硬盘管理程序

    可以在线进行文件上传、下载、删除等管理操作,采用Url路径加密 可以进行用户读写权限的设置,配置文件为Users.xml 使用前请在WebDriveConfig.xml配置xml和文件的物理路径 管理员管理配置在'管理员账户密码.txt'中

    艺帆仿百度云手机简约手机官方网站模板V1.8

    同时,云计算可以备份用户的数据,让网络成为用户的“硬盘”,随时随地接入,不怕文件丢失。海量的信息将会为用户服务。 云手机的价值在于,充分利用3G带来的移动宽带网络、手机永远在线的特性和‘云’技术的特点,...

    快速搭建移动App服务器 (win+tomcat+轻开平台+access入门版)

    复制webeasy目录到D:\下,然后进入%TOMCAT_HOME%\conf目录,用文本编辑器(如:EditPlus)打开server.xml文件,在“Host”标签下添加一“Context”标签: 保存退出并启动tomcat 5 编辑工具 轻开平台可以用任何网页...

    Fckeditor2.6.3

    FCKeditor.NET.zip是一个ASP.NET控件DLL文件。 下面结合一个ASP.NET2.0的项目来具体看看FCKeditor的安装、配置、使用。在开始之前请先下载FCKeditor文件包和FCKeditor.Net 服务器控件。启用VWD2005新建一个C#的WEB ...

    aspnet公共类cs文件.rar

    供Asp.Net直接调用的包装类(WebPreview.cs) 计算机重启、关电源、注销、关闭显示器辅助类(WindowsExitHelper.cs) ----------NONONONO-------------- 全局统一的缓存类(Cache.cs) 常用显示日期时间、农历、生肖的...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    过去,网络软件的开发都采用C/S(client)模式,在这种模式下,主要的业务逻辑都集中于客户端程序,因此,必然导致以下问题: 系统安装、调试、维护和升级困难。由于客户端的硬件配置可能存在差异,软件环能各不相同...

    c# 公用操作类库源码

    ----------Database-------------- 1.DataTable帮助类(DataTableHelper.cs) ...供Asp.Net直接调用的包装类(WebPreview.cs) 计算机重启、关电源、注销、关闭显示器辅助类(WindowsExitHelper.cs)

Global site tag (gtag.js) - Google Analytics