asp.net 网络硬盘实现分析

 更新时间:2011年02月19日 17:56:12   作者:  
随着网络技术的日益普及和信息化建设的重视,网络硬盘作为一种新型安全的网络存储系统,已越来越受到人们的重视和喜欢。
所谓“网络硬盘”,就是将服务器的磁盘空间提供给用户使用,用户可以通过它在互联网上实现文件的上传,下载和删除以及文件夹的创建与删除。并可以通过共享文件实现文件的网络共享。  实际要求是在客户端完成对服务器系统文件或文件夹的访问,创建和删除等功能。

网络硬盘的功能要求:

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

        ● 新建文件夹、上传文件

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

        ● 删除文件

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

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

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

网络硬盘的开发其实很简单,主要使用了类库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(); //将当前所有缓冲的输出发送到客户端 
}

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

相关文章

  • ASP.NET MVC5网站开发文章管理架构(七)

    ASP.NET MVC5网站开发文章管理架构(七)

    继上一篇把member的用户部分完成,现在开始做文章管理部分。文章部分根据涉及显示现实文章列表,发布文章,修改和删除文章等功能。最终的实现目标是使用权限来控制用户是否能进行相应操作,管理员权限的会显示全部文章列表和我的文章列表,普通用户只显示我的文章列表
    2015-09-09
  • 基于asp.net下使用jquery实现ajax的解决方法

    基于asp.net下使用jquery实现ajax的解决方法

    本文以最简单的方法为新手示范如何使用jquery实现ajax技术(所以本文是专为新手所写,老鸟勿喷,大神此处省略一万字)。至于什么是jquery什么是ajax,自己谷歌去
    2013-05-05
  • 关于.net环境下跨进程、高频率读写数据的问题

    关于.net环境下跨进程、高频率读写数据的问题

    最近老大教给我一个项目,项目要求高频次地读写数据,数据量也不是很大,难点在于这个规模的热点数据,变化非常频繁,下面把我的处理方法分享到脚本之家平台,对.net跨进程高频率读写数据相关知识感兴趣的朋友跟随小编一起学习下吧
    2021-05-05
  • .Net整合Json实现REST服务客户端的方法详解

    .Net整合Json实现REST服务客户端的方法详解

    这篇文章主要给大家介绍了关于.Net整合Json实现REST服务客户端的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-01-01
  • asp.net core利用AccessControlHelper实现控制访问权限

    asp.net core利用AccessControlHelper实现控制访问权限

    这篇文章主要给大家介绍了关于asp.net core利用AccessControlHelper实现控制访问权限的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用asp.net core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-10-10
  • ASP.NET Core配置文件的获取和设置

    ASP.NET Core配置文件的获取和设置

    这篇文章介绍了ASP.NET Core配置文件获取和设置的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • 通过.net core调用so文件的方法

    通过.net core调用so文件的方法

    工作中需要在linux上监控系统空闲时间,但是没有找到C#代码,只找到C的代码,所以准备将C文件编译为so然后用P/invoke调用,这篇文章主要介绍了如何通过.net core调用so文件,需要的朋友可以参考下
    2023-08-08
  • .NET 6开发TodoList应用之实现DELETE请求与HTTP请求幂等性

    .NET 6开发TodoList应用之实现DELETE请求与HTTP请求幂等性

    这篇文章主要介绍了在.NET6开发中如何实现DELETE请求以及HTTP请求幂等性的,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2021-12-12
  • 将.aspx转换为.htm的两种方法

    将.aspx转换为.htm的两种方法

    这篇文章介绍了将.aspx转换为.htm的两种方法,有需要的朋友可以参考一下,希望对你有所帮助
    2013-07-07
  • asp.net core集成JWT的步骤记录

    asp.net core集成JWT的步骤记录

    这篇文章主要给大家介绍了关于asp.net core集成JWT的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用asp.net core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06

最新评论