当前位置:文档之家› 信息与电气工程毕业设计_基于WEB网络硬盘设计与实现

信息与电气工程毕业设计_基于WEB网络硬盘设计与实现

信息与电气工程学院软件程序设计CDIO三级项目设计说明书(2013/2014学年第一学期)题目:Web版网络U盘目录1. 项目设计目的 (1)2. 项目设计正文 (1)2.1 系统分析 (1)2.1.1 网络硬盘系统功能要求 (1)2.1.2 网络硬盘系统分析说明 (2)2.2 系统设计 (2)2.2.1 数据库设计 (2)2.2.2 系统总体结构框图 (3)2.2.3 系统流程图 (4)2.3 网络硬盘系统实现 (6)2.3.1 登录模块 (6)2.3.2管理员上传文件模块 (7)2.3.3文件下载模块一 (9)2.3.4文件下载模块二 (11)2.3.5查看下载记录模块 (12)2.4系统测试 (13)3. 项目设计总结 (15)4. 参考文献 (15)1.项目设计目的1) 进一步巩固和加深对“C#.NET程序语言设计”课程的基本知识,了解ASP动态网页设计知识在实际中的应用;2) 综合运用“C#.NET程序语言设计”课程和先修课程的理论及生产实际知识去分析和解决问题,进行的相关训练;3) 学习ASP动态网页设计的一般方法,了解和掌握通用数据库的连接、数据的相关操作或网站的设计过程和进行方式,培养正确的设计思想和分析问题、解决问题的能力,特别是网站功能规划的能力和实现相关功能的能力;4) 通过对系统的分析、系统设计、数据库设计和功能的实现等,培养ASP动态网页设计的基本技能,巩固C#知识。

2.项目设计正文2.1 系统分析2.1.1 网络硬盘系统功能要求本设计为网路硬盘,管理员可以上传、分享一些文件,供普通用户下载,管理员可以添加、管理用户,浏览用户下载记录,删除以上传文件,从而对网盘进行维护和管理。

网络硬盘的功能要求:1) 管理员:用户登录、注销上传文件通过搜索找到已上传文件,对其管理或下载浏览普通用户下载记录添加新账户管理已添加账户修改自己的密码2) 普通用户:用户登录、注销下载已上传文件修改自己的账户信息及密码2.1.2 网络硬盘系统分析说明本系统用于网上文件的管理,账户注册方式为管理员添加开发,不提供自行注册。

管理员对该系统具有绝对控制权限,可添加、管理用户,上传、管理网盘文件,浏览已被下载的文件记录。

而普通用户需向管理员索要账户和密码,自己仅有修改该账户信息和浏览下载已上传的文件。

登陆模块下,通过账户名连接数据库判断目前用户为管理员还是普通用户,并在账户、密码验证后跳转到相应的网页。

管理员子系统内,上传文件模块可实现浏览选择本地文件,并获取所选文件地址和文件名,以及上传时间,然后将该文件上传到相应位置并将获取的各种信息保存到数据库相应列表内,供后续功能调用。

文件管理模块与下载历史记录模块通过Visual Studio自带的控件及数据绑定,实现已上传文件的删查操作及各用户对文件的下载记录。

通过链接数据库及相应C#代码实现新账户的添加、已有账户的权限管理及本账户的密码修改。

普通用户子系统内,文件下载模块需实现网盘内文件的浏览及下载,通过代码和数据库保存用户的下载文件名称、下载时间等信息,用于管理员下载历史浏览模块的调用。

该子系统内账户同样可修改自己的账户信息及账户密码。

2.2 系统设计2.2.1 数据库设计所用数据库FileManage.mdf包含三张数据表,用户信息表(UserLists)、文件存放表(FileLists)、下载历史记录表(DownloadHistory),表设计如下:表2-1 用户信息表(UserLists)列名数据类型长度是否为主键是否允许为空注释UserListID bigint 8 是否用户帐号UserAccount nvarchar 50 否否用户登录账户名UserPassword nvarchar 50 否否用户登录密码DepartmentName nvarchar 50 否是部门(学院)名称Contactor nvarchar 50 否是联系人Tel nvarchar 50 否是联系电话Email nvarchar 50 否是E-mailAddress nvarchar 255 否是地址UserLevel int 4 否是用户权限等级表2-2 文件存放表(FileLists)表2-3 下载历史记录表(DownloadHistory)2.2.2 系统总体结构框图图2-1 网络硬盘系统的总体结构列名 数据类型 长度 是否为主键是否允许为空注释 FileListID bigint 8 是 否 文件序号 UserAccount nvarchar 50 否 是 用户登录账户名Contactor nvarchar 50 否 是 联系人 UpFileName nvarchar 50 否 否 文件名 FileContent ntext 16 否 是 文件说明 FileSize nvarchar 50 否 是 文件大小 FileType nvarchar 50 否 是 文件类型 DownloadTimes int 4 否 是 文件下载次数 AddTimedatetime8否是记录添加时间列名数据类型 长度 是否为主键是否允许为空注释 DownloadHistoryID bigint 8 是 否 文件下载序号 UserAccount nvarchar 50 否 是 用户登录账户名Contactor nvarchar 50 否 是 联系人 FileListID bigint 8 否 否 文件编号 UpFileName ntext 16 否 是 文件名 DownDatetime datetime8否是文件大小WebUSB 网络U 盘系统普通用户子系统 管理员子系统用户登录模块用户密码修改模块文件下载模块页面显示控制模块管理员登陆模块文件上传模块 文件管理模块浏览下载记录模块添加用户模块 管理用户模块 修改密码模块页面显示控制模块2.2.3 系统流程图开始初始化程序与数据库内账号和密码相符?是否为管理员?输入用户名和密码输出登录失败信息单击菜单单击菜单添加用户 管理用户 查看下载记录 管理文件 上传文件 修改密码 下载文件修改账户信息及密码NNYY图2-2 系统流程图2.3 网络硬盘系统实现2.3.1 登录模块图2-3 登录页面展示登录模块后台功能实现代码:///<summary>///用户单击登录按钮事件方法///</summary>///<param name="sender"></param>///<param name="e"></param>protected void Button1_Click(object sender, EventArgs e){//获取用户在页面上的输入string userAccount = Account.Text; //用户登陆名string userPassword = Password.Text; //用户登陆密码UserList userlist = new UserList();userlist.LoadData(userAccount);if (userlist.Exist){if (erPassword == userPassword) //如果密码正确转入管理员页面{HttpCookie cookie = new HttpCookie("pcrepair"); //定义cookie对象以及名为aInfo的项DateTime dt = DateTime.Now; //定义时间对象TimeSpan ts = new TimeSpan(1, 0, 0, 0); //cookie有效作用时间cookie.Expires = dt.Add(ts); //添加作用时间cookie.Values.Add("UserListID", erListID.ToString()); //增加属性cookie.Values.Add("UserAccount", erAccount.ToString()); //增加属性cookie.Values.Add("DepartmentName",HttpUtility.UrlEncode(userlist.DepartmentName.ToString())); cookie.Values.Add("Contactor", HttpUtility.UrlEncode(userlist.Contactor.ToString()));//增加属性cookie.Values.Add("Tel",HttpUtility.UrlEncode(userlist.Tel.ToString())); //增加属性cookie.Values.Add("Address",HttpUtility.UrlEncode(userlist.Address.ToString()));//增加属性cookie.Values.Add("UserLevel", erLevel.ToString()); //增加属性Response.AppendCookie(cookie); //确定写入cookie中switch (erLevel.ToString()){case"0":Response.Redirect("admin/admin.aspx"); break;case"2":Response.Redirect("user/admin.aspx"); break;default: break;}}//如果密码错误,给出提示,光标停留在密码框中else{Response.Write("<Script Language=JavaScript>alert(\"密码错误,请重新输入密码!\")</Script>"); Password.Focus();}}else{Response.Write("<Script Language=JavaScript>alert(\"您输入的用户名不存在!\")</Script>");}}}2.3.2管理员上传文件模块图2-4 文件上传页面展示一图2-5 文件上传页面展示二文件上传模块后台功能实现代码:protected void Button1_Click(object sender, EventArgs e){Hashtable ht = new Hashtable();ht.Add("UserAccount", SqlStringConstructor.GetQuotedString(Convert.ToString(Request.Cookies["pcrepair"].Values["UserAccount"])));ht.Add("Contactor", SqlStringConstructor.GetQuotedString(HttpUtility.UrlDecode(Convert.ToString(Request.Cookies["pcrepair"].Values["Contactor"]))));ht.Add("FileContent", SqlStringConstructor.GetQuotedString(FileContent.Text));//上传文件名为原文件名string affixFileName = InputAffixFile.Value.Trim();int ShowFileSize = Convert.ToInt32(InputAffixFile.PostedFile.ContentLength.ToString())/1024; string ShowFileType = affixFileName.Substring(stIndexOf(".") + 1).ToLower(); int idx = stIndexOf('\\');affixFileName = affixFileName.Substring(idx + 1);string fileName = "";if (affixFileName != ""){string path = this.InputAffixFile.PostedFile.FileName;fileName = Path.GetFileName(path);ht.Add("UpFileName", SqlStringConstructor.GetQuotedString(fileName));ht.Add("FileSize", SqlStringConstructor.GetQuotedString(Convert.ToString(ShowFileSize)));ht.Add("FileType", SqlStringConstructor.GetQuotedString(ShowFileType));InputAffixFile.PostedFile.SaveAs(Server.MapPath("~//upfile//affix//") + fileName);FileList filelist = new FileList();filelist.Add(ht);Response.Write("<Script Language=JavaScript>alert(\"恭喜,文件上传成功!\")</Script>");}else{Response.Write("<Script Language=JavaScript>alert(\"请选择上传文件!\")</Script>"); }}}2.3.3文件下载模块一该部分实现绑定数据的文件下载图2-6 文件下载页面展示图2-7 文件下载页面VS设计界面文件下载模块后台功能实现代码:protected void Page_Load(object sender, EventArgs e){//加载if (!IsPostBack){//绑定数据DataView dvlist = FileList.QueryFileLists();AspNetPager1.RecordCount = dvlist.Table.Rows.Count;Session["dvlist"] = dvlist;bindData();}}void bindData(){PagedDataSource pds = new PagedDataSource();pds.AllowPaging = true;pds.PageSize = AspNetPager1.PageSize;pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;pds.DataSource = (DataView)Session["dvlist"];GridView1.DataSource = pds;GridView1.DataBind();}protected void AspNetPager1_PageChanged(object sender, EventArgs e) {bindData();}}2.3.4文件下载模块二该部分功能为:下载时将文件的名字、路径、下载时间及下载人的部分信息传到数据库,供管理员查看下载记录程序调用。

相关主题