asp.net 网络硬盘实现分析

所谓“网络硬盘”,就是将服务器的磁盘空间提供给用户使用,用户可以通过它在互联网上实现文件的上传,下载和删除以及文件夹的创建与删除。并可以通过共享文件实现文件的网络共享。  实际要求是在客户端完成对服务器系统文件或文件夹的访问,创建和删除等功能。

网络硬盘的功能要求:

● 用户登录、注销、用户注册

● 新建文件夹、上传文件

● 查看文件属性(包括:名称,所在目录,类型,大小,创建时间)

● 删除文件

● 更换文件图标(分为大图标和小图标)

● 通过搜索找到自己的文件并可以下载

进入时需有用户名和密码方能进入,有效的保护了文件的机密。

网络硬盘的开发其实很简单,主要使用了类库Io,用来实现对文件的操作,采取了数据库和物理路径相对应映射的方式完成的,下面就来简单说说其主要的几个点:

首先是数据库设计这块,根据自己的需求设计出最适合的数据库,我设计的数据库分3个表,T_User,T_FileType,T_FileInfo

T_User

T_FileType

T_FileInfo

其次,我们知道网络硬盘是满足很多用户的需求的,所以每个用户都有属于自己的空间,这就要求我们在页面中要用登录和注册功能,这里要提到的就是在注册的时候我们就要相应位用户分配空间,名称最好不要直接用登录名,可以采取映射的方式命名,如:用户名是admin,那么物理路径的目录名就可以为adminDir,adminFile等等,主要是从安全方面考虑的,注册完用户后就会在物理空间中显示初始创建的几个文件夹

下面就是要对文件操作的几点了

对文件的操作首先要保证数据库与物理路径要保持一致,比如说增加一个文件,物理路径添加了,数据库也要有相应的增加记录才可以,没什么大的问题,在这里把下载的代码贴出来:


代码如下:

private void FileDownload(string FullFileName)//下载
{
FileInfo DownloadFile = new FileInfo(FullFileName); //设置要下载的文件
Response.Clear(); //清除缓冲区流中的所有内容输出
Response.ClearHeaders(); //清除缓冲区流中的所有头
Response.Buffer = false; //设置缓冲输出为false
//设置输出流的 HTTP MIME 类型为application/octet-stream
Response.ContentType = "application/octet-stream";
//将 HTTP 头添加到输出流
Response.AppendHeader("Content-Disposition",
"attachment;filename=" +
HttpUtility.UrlEncode(DownloadFile.FullName.Substring(FullFileName.LastIndexOf("\\") + 1),
System.Text.Encoding.UTF8));
Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
//将指定的文件直接写入 HTTP 内容输出流。
Response.WriteFile(DownloadFile.FullName);
Response.Flush(); //向客户端发送当前所有缓冲的输出
Response.End(); //将当前所有缓冲的输出发送到客户端 
}

修改和转移的逻辑很相似,修改目录名称的时候,就是新建一个目录,然后通过子目录移到新目录下面,在数据库中采用递归修改子目录和文件的路径名称,修改文件就更简单了,转移也同样如此...

(0)

相关推荐

  • Asp.net mvc实时生成缩率图到硬盘

    对于缩率图的处理是在图片上传到服务器之后,同步生成两张不同尺寸的缩率供前端调用,刚开始还能满足需求,慢慢的随着前端展示的多样化,缩率图已不能前端展示的需求,所以考虑做一个实时生成图片缩率图服务. 每次调用实时生成缩率图,不缓存着实有点浪费,所以在生成缩率的同时缓存到硬盘一份,效率提高很多. 之前从网上看了一下有人用nginx + lua实现的,效率那是没什么可说的,但是时间紧迫,自己也没时间去研究,所以暂时先用aps.net mvc4来实现 一个,以后有时间了,再慢慢修改. 用自己熟悉的.net

  • ASP.NET设计网络硬盘之两重要类代码

    System.IO.File类和System.IO.FileInfo类 在设计和实现"网络硬盘"的过程中,将大量地使用和文件系统操作相关的内容.故本节先对和文件系统相关的两个.NET类进行简要介绍. System.IO.File类和System.IO.FileInfo类主要提供有关文件的各种操作,在使用时需要引用System.IO命名空间.下面通过程序实例来介绍其主要属性和方法. (1) 文件打开方法:File.Open 该方法的声明如下: public static FileStre

  • ASP.NET设计网络硬盘之下载或在线查看实现代码

    在目录浏览中,如果选择的是一个文件,单击"打开"按钮就可以进行文件下载.当然,也可以选择直接打开,如图1所示. 图1 下载和在线打开界面 单击"打开"按钮将直接打开该文件,单击"保存"按钮可以下载该文件. 代码实现 打开文件所单击的还是"打开"按钮,所以要在"打开"事件中加以判断,看选中的是文件夹还是文件.故对btnOpen_Click()事件进行了修改,下面加重部分为新增的代码: 复制代码 代码如下: p

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

    常用传输方式及其在特定环境下面临的困难 我们经常有这样的应用需求:通过网络交换公共数据文件以实现资源共享,同时保护私有数据不被非法访问,并使用简单.直观的方式操作.我们常用的文件传输FTP.Email邮件.网上邻居都能实现文件的传送.其中,"Ftp"功能最为强大,但使用起来却稍显复杂,一大堆设置足以让许多人望而止步,尤其用户数量不可预见时,针对特殊需求用户的设置将更加繁琐:"Email"是大家所熟悉的了,但它的传送不仅需要你连入Internet,而且它的安全性也是个

  • ASP.NET设计网络硬盘之上传文件实现代码

    1.界面布置 这部分功能涉及到的控件主要有两个:一个是(ID)为WebFile的File Field控件,用来浏览上传文件路径:另一个是(ID)为btnUpLoad的上传按钮,单击它完成文件上传. 2.代码实现 在"设计"面板中双击btnUpLoad按钮,为其添加事件处理,其代码如下所示: 复制代码 代码如下: private void BtnUpload_Click(object sender, System.EventArgs e) { if(WebFile.PostedFile.

  • ASP.NET设计网络硬盘之查看文件夹实现代码

    就像操作本地的计算机一样,需要为每个网络用户提供各自的一块硬盘空间,用户登录后便可以对自己的空间进行管理.管理是多方面的,首先用户应该能看到自己文件夹下的所有内容,另外需要提供多级文件夹目录的支持. 下面要介绍的实例包括"网上硬盘"的许多功能,将一步步为大家进行介绍.首先创建工程实例,然后进行主界面的设计,最后对各个功能的实现分别进行介绍. 新工程创建 新工程创建的步骤如下: (1) 打开MicroSoft Visual Studio.NET应用程序. (2) 选择"文件&q

  • ASP.NET设计网络硬盘之删除文件夹实现代码

    界面布置 主界面设计中有个"删除"按钮,其(ID)为btnDelete.用户在目录浏览中选中要删除的项后,单击该按钮就可以完成删除工作. 代码实现 在"设计"面板中双击"删除"按钮,为其添加事件处理程序如下: 复制代码 代码如下: private void BtnDelete_Click(object sender, System.EventArgs e) { DeleteThings(FileList.SelectedItem.Text); }

  • ASP.NET设计网络硬盘之文件夹实现

    在介绍"网络硬盘"概念时已经提到,每个用户在"网络硬盘"上都有自己的一块空间.在下面程序设计中是这样处理的:为用户提供一个固定的文件夹,在这个文件夹下用户可以自己增加/删除新的文件夹或文件.如图1所示,首次打开网页时将列出该文件夹下的所有内容(包括文件和文件夹).如果想进入下一级文件夹,可以选中该文件夹,单击"打开"按钮进入.下面将就查看文件夹内容功能的实现分步骤进行说明. 图1 用户主界面 1. 页面加载 由于程序所提供的用户目录是固定的,如c

  • asp.net 网络硬盘实现分析

    所谓"网络硬盘",就是将服务器的磁盘空间提供给用户使用,用户可以通过它在互联网上实现文件的上传,下载和删除以及文件夹的创建与删除.并可以通过共享文件实现文件的网络共享.  实际要求是在客户端完成对服务器系统文件或文件夹的访问,创建和删除等功能. 网络硬盘的功能要求: ● 用户登录.注销.用户注册 ● 新建文件夹.上传文件 ● 查看文件属性(包括:名称,所在目录,类型,大小,创建时间) ● 删除文件 ● 更换文件图标(分为大图标和小图标) ● 通过搜索找到自己的文件并可以下载 进入时需有

  • 推荐:二次发现桃源网络硬盘漏洞

    本人在第10期上的黑防刊登了桃源网络硬盘相关的漏洞后.马上就通知了桃源官方修复了相关漏洞.近日,下班后无聊,就重新下载了桃源网络硬盘的最新版本2.5进行全面检测.发现虽然修补了用".",另存.下载其网站的配置文件及数据库等漏洞.但用其它的方法作了个测试后发现,汗.还是存在相关漏洞,还有就是可以构造代码,任意查看网络硬盘所有文件的源代码及配置文件和数据库.好的,转入正题吧. 为了给大家给个真实的视觉效应,特意在官方详细测试.第一就是上传漏洞,在这里官方已经换上了最新版本的V2.5了.所在

  • asp.net网络数据库开发实例精解 源文件

    出版社:清华大学出版社本书特点:通过大量实例,将ASP.NET的技术点贯穿起来深入剖析网络数据库开发的技术点和难点贯穿了作者多年的开发经验,具有较高的参考价值专门设计了综合案例,让您领会项目开发的思路代码规范,层次清楚,注释丰富,易于理解配有多媒体演示光盘,加速学习.读者对象:ASP.NET网络数据库开发人员大中专院校相关专业的学生毕业设计的学生ASP.NET培训人员asp.net网络数据库开发实例精解 源文件下载后用虚拟光驱软件打开,即可,最全的文件了,整个光盘的内容都在里面了,jb51.ne

  • PHP实现的简单网络硬盘

    本文实例讲述了PHP实现的简单网络硬盘.分享给大家供大家参考.具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head&g

  • 91files免费网络硬盘存储空间_单个文件最大支持100M

    91files是一款国内的免费网络硬盘文件存储服务,单个文件最大支持100M,不限制流量,提供文件下载页面,速度还可以:不注册也可以上传文件,不过只能保存一个月时间:注册后可以管理自己的文件.设置个人的LOGO.文件也将被长期保存.此免费网盘的 地址:http://www.91files.com

  • 最大的免费网络硬盘

    http://www.fs2you.com/zh-cn/ 不限容量,不限单个文件大小 Mofile 网络硬盘.视频存储服务,简洁,快速,而且免费! Mofile[中国活动通信]全球最大的文件中转接力站和网络硬盘,提供免费64M文件储存空间(永久有效),其临时存放空间最大达到1G,很实用的免费服务.上载.下载的速度挺快的,需要大量传送文件的朋友不妨试试这个.另外,他们还提供上传文件与下载文件能积魔点,换奖品的服务呢,很不错的,强烈推荐!申请时认真填写邮箱地址,用来接受激活邮件. 地址:点击这里免费

随机推荐