【毕业设计】基于Java的网络文件传输系统研究与设计

摘 要

随着时间的稳步推进,当今时代已经从工业经济逐渐成为知识经济、资产经济和信息经济的时代。对信息日益增长的需求也促进了计算机通信的快速发展!科技的发展使我们的生活也产生了巨大改变,其中最明显的莫过于我们的信息越来越多,信息的体积也越来越大,相对应所需存储的空间要求也越来越高,最终对其的管理也就逐渐变为了一个问题。现如今,Web的发展越来越广泛,逐渐成为了一种趋势,为了解决不在同一个地方就无法进行传输的问题,开发一个功能简单而实用,能在Web浏览器的文件传输工具势在必行

本系统以目前流行的Java编程语言为基础,用如今常用的Spring后端框架,采用B/S即Brower/Server(浏览器/服务器)架构模式。数据库管理使用H2数据库对整个系统数据进行设计、存储,并使用Eclipse为开发工具完成整个系统编写。

本系统为网络云盘系统,可以针对个人,团队或小型组织。实现了文件的上传下载功能、用户之间的文件共享功能、对系统内的文件进行搜索的功能、对系统内文件进行移动复制的功能以及各种常见类型文件的在线预览功能,其中包括视频、音乐、图片和Word文档、txt文档、PDF文档、Excel文档等各种文档预览功能。

通过在本地计算机中配置相对应的服务进行测试,以上功能均可完整实现,运行无误。

关键词

Java Web;B/S架构;文件传输;文件共享

Abstract

With the steady progress of time, the current era has gradually become the era of knowledge economy, asset economy and information economy by the industrial economy. The increasing demand for information has also led to the rapid development of computer communication. The development of science and technology has brought great changes to our lives. The most obvious one is that we have more and more information, the amount of information is increasing, and the corresponding storage space requirements are getting higher and higher. Finally, the management of information has gradually become a problem. Nowadays, the development of the Web is more and more extensive, and it has gradually become a trend. In order to solve the problem that it cannot be transmitted in the same place, it is imperative to develop a simple and practical file transfer tool that can be used in a web browser.

The system is based on the currently popular Java programming language, using the commonly used Spring back-end framework, using B/S namely (Browser /Server) architecture mode. Database management is to use H2 database and Eclipse to complete the preparation of the whole system as a development tool.

This system is a network cloud disk system, can be targeted at individuals, teams or small organizations. It realizes the function of uploading and downloading files, the function of sharing files between users, the function of searching files in the system, the function of moving and copying files in the system, and the online preview function of various common types of files. It includes video, music, pictures and Word documents, TXT documents, PDF documents, Excel documents and other various document preview functions.

By configuring the corresponding service in the local computer for testing, the above functions can be fully realized and run without error.

Key words

Key words: Java Web; B/S architecture; File transfer; File sharing

目  录

1绪论

1.1研究背景

1.2研究意义

1.3研究现状分析

1.4论文结构安排

2 系统需求及相关技术介绍

2.1 业务需求分析

2.2 功能需求分析

2.3 编程语言Java

2.4 主要开发工具介绍

2.5 开发模式介绍

2.5.1 B/S架构

2.5.2 C/S架构

2.5.3 二者主要区别

2.6 H2数据库简单介绍

2.7 FTP协议简介

2.8数据库表设计

2.8.1 数据库表设计思想

2.8.2 主要表的设计展现

2.9本章小结

3 系统功能设计

3.1 系统的整体代码架构

3.2 访问系统

3.3 登录操作

3.4 文件搜素

3.5 上传文件功能

3.6 新建和上传文件夹功能

3.7 文件列表显示顺序

3.8 文件下载功能

3.9 复制/移动文件

3.10 各种文件的预览播放功能

3.11 后台用户账户与权限设置

3.11.1 创建一个账户

3.11.2 修改已有的账户信息

3.11.3 为账户设置小组

3.12 本章小结

4 系统测试

4.1 启动访问测试

4.2 部分功能测试

4.2.1 新建文件夹测试

4.2.2 文件上传测试

4.2.3 预览播放功能测试

5 总结与展望

5.1 总结

5.2 展望

致  谢

参考文献

1绪论

1.1研究背景

  随着时间的稳步推进,当今时代已经从工业经济渐渐成为了知识经济、资产经济和信息经济的时代。对信息的日益增长的需求也促进了计算机通信的快速发展!科技的发展使我们的生活也产生了巨大改变,其中最明显的莫过于我们的“东西”越来越多,所需存储的空间也越来越大,相对应的管理也就逐渐变为了一个问题。在很多情况下,们的日常工作需要通过文件传输来完成但大多数文件传输功能都需要通过诸如移动磁盘之类的硬件设备来实现。这就出现如浪费资金、浪费时间特别如果需要传输的双方不在同一个地方,就无法进行传输现如今,Web的发展越来越广泛,为了方便不同地区人们之间的资源共享,需要开发一个基于常见浏览器的文件传输工具,在网络中实现文件交换。随着计算机和网络的飞速发展,人们借助网络交换信息资源变得非常方便。各种文件传输系统都已被广大用户接受。例如QQ、UC、MSN、Internet mail等互联网是使用最广泛的文件传输工具,但它们之间的文件传输往往非常依赖于远程服务器,对可以传输的文件的大小和人员也有限制。在这种情况下,开发一种具有简单实用功能并且可以在Web浏览器中使用的文件传输工具至关重要。

1.2研究意义

 现如今,我们每天面对的信息越来越多,所需存储的有用的文件也越来越大。小到一个几KB的文档,大到一个几G的电影,有时我们都需要将其存储起来。之前我们常用的就是U盘,或者移动硬盘,但随着我们存储次数的逐渐频繁,所需存储的空间也越来越大,这种物理存储的弊端也就越来越难以忍受,费时,费力,若两个不在一处的同伴想要分享一些文件更是一筹莫展,最糟糕的万一遗失那可真的使人痛心疾首了。因此,开发一个“网盘”就显得至关重要了,不仅可以随时随地可以进行上传下载,而且不同地区的伙伴共享文件也变得轻而易举。用起来也十分简单,就像我们平时上网一样,只要打开浏览器就可以使用。

1.3研究现状分析

 当今时代,国内外的各种单位对文件传输系统的认识以及对其的使用情况并不理想,各事业单位很多还是在局域网内进行文件传输,在文件共享的方面还存在许多缺陷,相关的理论技术研究也还不够深入。随着如今计算机技术以及网络编程技术的发展,人们使用的文件传输软件也随之而升级,表现出更多的稳定性、易操作、高性能等优点。然而开发者在注重下载功能的时候,往往容易忽略用户对文件上传的需要,并且对于大体积文件传输可能产生的许多问题并没有过多考虑。

 在国内,用户大多使用飞鸽传书和迅雷来当作文件传输的工具。飞鸽传书主要应用在局域网种的文件共享,而迅雷则主要对文件的快速下载提供服务。许多软件在进度显示、多线程传输等方面还存有缺点,并且常用的文件传输软件的功能也比较单一。

1.4论文结构安排

 本篇论文共设计了五个章节,最开始对该系统的研究背景和研究意义进行了分析,之后对开发所用的一些主要知识及其主要工具进行了简单的介绍,继而对系统所需的功能进行了研究分析,接着对所用到的数据库及相对应的本系统的表的设计进行说明,最终对系统所实现的功能进行了较为详细的解释说明,此章节也是本文所侧重的,同时也是该系统所突出的一些地方,因此用了较多的笔墨进行描绘。

 其具体安排如下:

 第一章 绪论。简单介绍本系统的研究背景、意义以及国内外如今的发展现状,使用户对本系统有一个基本的了解。

 第二章 系统需求分析及相关技术介绍。介绍了本系统需要实现的功能以及其中用到的主要技术和主要使用的开发工具。

 第三章 系统功能设计。较为详细的介绍本系统主要实现的功能,使读者对本系统拥有更清晰的认识。

 第四章 系统测试。在本机上对系统部分功能进行测试,检测系统运行的正常性。

2 系统需求及相关技术介绍

2.1 业务需求分析

本文提出了一个基于Java Web系统的网络文件传输共享系统。它是一个专用网络/云盘系统,可以针对个人,团队或小型组织。它既方便又完美。它不仅可以取代u盘,还可以实现视频在线播放、文档在线预览、音乐在线播放、图片在线观看等高级功能的平台。不同种类的文件都有相应的处理,可以满足用户的各种需求。而且使不同用户之间的数据共享变得无比简单!

2.2 功能需求分析

 为实现完善的网盘系统,应具备其相关的基本功能,下面对部分必要的功能进行需求分析:

 (1)文件权限分类:由于本系统所面向的用户可以不仅仅是个人,因此,为文件设置对应的权限就是必不可少的。文件必然存放在文件夹中,所以直接对文件夹的访问进行权限设置即可,本系统设置了三种权限属性:

公开的(任何人都可以看到包括游客)

仅小组(只有在同一个小组的成员才可访问)

仅创建者(只有创建文件夹的作者才可访问)

(2)访问登录功能:简单易用作为本系统的宗旨,所以用户打开浏览器输入网址即可访问到本系统的主界面。此时,用户的身份为游客,可访问一些公开的文件夹,根据后台设置的权限,用户使用游客身份亦可进行一些基本的操作,权限的大小取决于后台的设置;若用户拥有账号,即可进行登录操作,登录成功之后可看到同一小组内其它成员的文件和用户个人单独创建的私密文件。

(3)文件搜索功能:随着我们使用次数的增多,我们所上传的文件也不可避免的越来越多,此时,搜索文件的功能就成为不可或缺的了。

(4)文件上传功能:作为一个网盘,文件上传自然是必不可少的。本系统不仅可以上传各种类型的文件,还可以直接选择文件夹进行上传。上传文件时,本系统支持一次选择多个文件同时上传;若要对问件夹进行上传,则每次仅能选择一个文件夹进行上传,并且,上传时仅识别非空文件夹,空文件夹均会被自动忽略。

(5)文件下载功能:同样,作为一个网盘,只能上传而不能下载是万万不可的。所以,本系统支持文件下载功能。然而,在一些时候,用户想要下载的文件不止一个,因此,设计一个支持多个文件同时下载的打包下载功能也是必不可少的。

(6)文件列表排序功能:当我们使用逐渐频繁,不可避免的同一个文件夹下会出现越来越多的文件,此时,不只是搜索功能,文件的排序功能同样对我们查找文件能够起到重要作用。因此,本系统提供依照“文件名”、“创建日期”、“大小”、“创建者”这几类标签进行升序或降序。当我们找到相关文件之后,想要使其变回原来的样子,亦可点击重置按钮恢复默认的显示顺序。

(7)移动/复制文件功能:当用户不小心在图片文件夹下上传了一个音频文件时,就需要一个文件移动功能了,不然就只能删除,重新上传了。因此,本系统可以像操作Windows系统一样,提供了剪切,复制,粘贴功能,只需点击对应的按钮即可。

(8)各种文件的预览和播放功能:当用户想要查看系统中的图片、文档或一段声音/视频时,无需下载,只需点击预览/播放按钮即可查看!

2.3 编程语言Java

     Java是一门典型的面向对象的高级语言,吸收了很多高级语言的优点,并放弃了一些不必要的功能。Java简化了编程时的内存管理,拥有垃圾自动回收机制,减少了出错的可能,使得编程获得简化,不必再考虑内存溢出的问题。Java不仅支持对象的继承而且还具有多线程的优势。多线程使得程序可以同时执行不同的操作,并且之间互不干扰,保证了程序的执行效率。

2.4 主要开发工具介绍

 现如今,Java开发所使用的编译器无非Eclipse和IntelliJ IDEA两种,二者的使用人数不相上下,由于本人较为熟悉Eclipse,所以选择Eclipse作为开发工具,下面对Eclipse进行简单介绍。

 Eclipse是一个开源的、基于Java的可扩展开发平台。其本身只是一套通过组件插件应用在框架中构成的开发环境的服务。由于Eclipse中的所有内容都是插件,因此所有工具开发人员都可以为Eclipse提供插件并为用户提供一致统一的集成开发环境。

2.5 开发模式介绍

2.5.1 B/S架构

图2-1 B/S架构设计模式

B/S架构,即Brower/Server(浏览器/服务器)架构。它由逻辑上相互分离的表示层、业务层和数据层构成。表示层向客户提供数据,业务层实施业务和数据规则,数据层定义数据访问标准;三层体系结构中的核心是组件对象模型。

    B/S系统统一了客户端,无需特殊安装,拥有Web浏览器即可;它简化了系统的维护、开发和使用,因为它将部分系统的核心功能集中在服务器上。它进行数据交互的方法也十分简单,将数据库安装在服务器上,浏览器通过数据库管理系统即可进行交互。

2.5.2 C/S架构

图2-2 C/S架构设计模式

C/S即Client/Server结构,通常由服务器负责数据库数据的管理,由客户端负责和对用户之间的信息进行交互。

C/S架构可以完美发挥PC端的数据的处理能力,很多的功能可以首先经由客户端处理之后再交给服务端去处理,甚至有一些功能完全由客户端处理就可以了,使用相对应的响应速度就会特别的快。基于这样的特点使用服务器的压力相对就会减少很多,程序效率就会显得特别高。另外C/S架构对于数据库的管理功能也比较的透明,它对固有的人群信息的安全性会比较强。

2.5.3 二者主要区别

建立基础不同:C/S是建立在局域网的基础上的;而B/S是建立在广域网的基础上的。

安全要求不同:B/S 建立在广域网之上,而C/S是建立在局域网的基础上,因此与C/S相较之下,对安全的控制能力偏弱,因为它面向的也是不可知的用户群。

处理问题有所不同: C/S程序可以处理固定的用户面孔,而B/S建立在广域网上,面对不同的用户群和分散的区域,这是C/S无法做到的;并且与操作系统平台关系最小。

B/S架构最大的优点就是使用方便,拥有浏览器即可,无需进行额外的下载,与本系统的主旨相符,因此本系统也是采用B/S架构。

2.6 H2数据库简单介绍

H2是可以直接嵌入到应用项目中的数据库,因为它使用Java语言进行开发的,本身只是一个类库而已。H2的最大用途是它可以与目标应用程序一起打包和发布,这使得存储少量结构化数据非常方便。它的另一个用途是用于单元测试。H2的第三个用处是作为缓存,作为NoSQL的一个补充。当某些场景下数据模型必须为关系型,可以作为后端MySQL/Oracle的一个缓冲层来使用,用来缓存一些变化较少但需要频繁进行访问的数据。不过这样就会使系统架构比较复杂了。

 H2的产品优势:

   纯Java编写,不平台的限制;

 特别适合用作嵌入式数据库来使用,因其本身只用一个jar文件构成

     功能完善,支持标准SQL和JDBC。麻雀虽小五脏俱全;

   支持内嵌模式、服务器模式和集群。

2.7 FTP协议简介

 FTP (文件传输协议) 是tcp/ip协议组中的协议之一。FTP的传输效率特别高,经常用于在网络上进行大文件传输。FTP协议由两个组件组成,一个是FTP服务器,另一个是FTP客户端,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。

FTP协议的任务是将文件从一台计算机传输到另一台计算机,无论两台计算机位于何处,如何连接,甚至是否使用相同的操作系统。只要两台计算机可以访问Internet并且可以使用ftp协议通话,即可以使用ftp命令使彼此传输文件。尽管在每个操作系统的使用上都有一些区别,但是每个FTP协议的基本命令结构都是相同的。FTP传输有两种方式: ASCII传输模式和二进制数据传输模式。

2.8数据库表设计

2.8.1 数据库表设计思想

 数据库设计的最终追求目标是满足需求与提高性能,根据实际情况的不同可适当调整设计原则。通常,在设计数据库时,它遵循三个通用的设计思想: 将时间交换为空间,以追求尽可能小的数据存储结构。其具体为:

(1)数据库的每一列都是不可再分的值,以确保数据的原子性。

(2)确保表中的每一列都与主键相关,即在另一个数据库表中,一个表中只能存储一种类型的数据,并且不能将多个数据存储在同一数据库表中。

(3)确保每列都和主键直接相关而不是间接相关,并且不能和其它非主属性为通用的传递关系。

在设计时遵循这些设计思想往往可以简化我们表的设计,减少冗余。而表设计的合理与否,对于程序运行的性能也会带来很大的影响。

2.8.2 主要表的设计展现

本系统主要围绕文件夹和文件来进行研究与设计,因此在这里也只为大家展示这两个主要的表的设计属性:

 文件夹表(folder)如表2-1所示:

表2-1 文件夹信息表

属性名称

数据类型

数据长度

字段值(是否非空)

folder_id

varchar

128

NOT NULL

folder_name

varchar

128

NOT NULL

folder_creation_date

varchar

128

NOT NULL

folder_creator

varchar

128

NOT NULL

folder_parent

varchar

128

NOT NULL

folder_constraint

int

2

NOT NULL

文件表(file)如表2-2所示:

表2-2 文件信息表

属性名称

数据类型

数据长度

字段值(是否非空)

file_id

varchar

128

NOT NULL

file_name

varchar

128

NOT NULL

file_size

varchar

128

NOT NULL

file_parent_folder

varchar

128

NOT NULL

file_creation_date

varchar

128

NOT NULL

file_creator

varchar

128

NOT NULL

file_path

varchar

128

NOT NULL

2.9本章小结

本章首先对该系统的需求进行分析,从而引出本系统所应具有的实际功能,并对这些功能加以陈述。由实际功能出发,对编写本系统的编程语言及开发工具以及所需用到的主要技术知识进行介绍,使读者对于本系统及实现本系统的原理知识具有整体的概念。

3 系统功能设计

 本系统实现了基于Java Web的网络文件传输系统。实现了作为网盘所需的必不可少的功能,其中包括对文件权限进行分类、访问登录系统的功能、系统内文件搜索功能、文件上传及下载功能、文件列表排序功能、移动/复制文件功能以及非常便捷的各种文件的预览和播放功能等。下面对其中主要功能进行说明解释。

3.1 系统的整体代码架构

图3-1 系统整体代码架构

如图3-1所示,此为本系统的整体代码体系。其中各个分类具体功能如下:

源代码资源文件夹:/src/main/java/

入口类:kohgylw.kiftd.mc.MC

web界面请求处理包:kohgylw.kiftd.server.controller、kohgylw.kiftd.server.filter

web界面操作逻辑包:kohgylw.kiftd.server.service

核心功能及文件系统实现包:kohgylw.server.util、kohgylw.kiftd.server.listener、kohgylw.kiftd.server.mapper、kohgylw.kiftd.server.model

服务器行为控制类:kohgylw.server.ctl.KiftdCtl

服务器界面相关包:kohgylw.kiftd.ui、kohgylw.kiftd.printer

独立文件管理模块相关包:kohgylw.kiftd.util.file_system_manager

第三方工具使用许可证包:kohgylw.kiftd.util.licenses

web页面静态资源文件夹:/webContext/

mybatis映射表文件夹:/mybatisResource/

外部引用资源(编译后生成)文件夹:/libs/

引用字体文件夹:/fonts/

设置文件(程序第一次运行后生成)文件夹:/conf/

日志文件夹:/logs/

编译输出文件夹:/target/

maven配置文件:/pom.xml

3.2 访问系统

图3-2 系统访问图示

如图3-2所示,打开浏览器,输入系统所在服务器IP地址即可访问本系统(由于本人未部署到远程服务器上,是在本机上进行演示,故网址为local host与127.0.0.1一样即本机IP地址)。

此时身份为游客,可以查看一些公开的文件,并依照后台所赋予的权限对文件进行操作。如图3-3所示,此时可以进行下载和预览功能,但无法进行更多操作,如上传文件、复制、剪切等(为灰色,无法点击)。

图3-3游客权限图示

3.3 登录操作

 在图3-1即可看到,在页面的右上角有登录功能,若用户有为其配置的账号即可进行登录操作,如图3-4所示。

图3-4登录页面图示

 输入正确的账号和密码即可成功登录,错误则会进行相对应的提示。登录成功之后即可看到同一小组的共同文件以及自己创作的私人文件。同时,对自己的文件随之也会有更多的操作,并且解锁上传文件、上传文件夹、新建文件夹、复制、剪切等更多权限操作,如图3-5所示。

图3-5成功登录权限展示图

3.4 文件搜素

本系统的文件搜索功能提供了两种不同的搜索模式:

(1)快速搜索模式——当你需要在当前文件夹内搜索文件时,直接在文件列表上方的搜索框内输入关键字并点击搜索按钮即可对文件进行搜索,如图3-6所示:

图3-6快速搜索演示

(2)全局搜索模式——当你需要在整个路径(包含当前文件夹和其中的所有子文件夹)下进行搜索时,则可以在搜索框中输入all:{关键字}并点击搜索按钮进行搜索,如图3-7所示:

图3-7全局搜索演示

 另:当文件数量较多时,使用全局搜索模式可能需要耗费较长的时间。此外全局搜索模式返回的文件还可使用快速搜索模式进行二次搜索。若要重新显示当前文件夹的原本内容,清空搜索输入框再次点击搜索按钮即可,或点击如图3-1所示右上角的刷新按钮亦可达到同样的效果。

3.5 上传文件功能

 用户成功登录之后点击左侧的操作按钮,之后选择上传文件即可进行文件的上传。

 用户每次上传所能选择的文件可以为多个,而且也可为不同类型,例如:可以同时选择两张图片和一份文档进行上传,如下图3-8,图3-9所示:

图3-8 上传文件图示

图3-9 选择文件图示

点击开始上传按钮,即可实现上传功能。

 同时,除了使用上传窗口进行文件的上传之外,也可以将文件直接拖拽到页面上来上传它们,如图3-10所示。但本系统只支持拖拽上传文件不支持拖拽上传文件夹。

图3-10拖拽上传文件图示

3.6 新建和上传文件夹功能

 用户可以通过点击操作下拉按钮之后点击新建/上传文件夹来实现整个存储系统的多级设置。同时,新建/上传也是实现权限设置的重要途经;在新建文件夹时,系统会让用户选择文件夹的访问级别,如图3-11所示:

图3-11设置访问级别图示

其中,文件夹的访问级别设置为以下三种:

1) 公开的——任何人均可进行浏览访问

2) 仅小组——仅当访问者使用账户登录本系统,且该账户与文件夹的创建者所在同一小组时才能进行访问。(账号与小组的相关介绍会在后面讲解)

3) 仅创建者——只有创建此文件夹的作者本人账户才能访问。

 另:当文件夹的访问权限设定后,其它访问者将无法访问未授权的文件夹,自然也无法进行任何操作。需要注意的是,若该文件夹的上级文件夹被删除,则它也会被一并删除。

 下面演示通过点击上传文件夹按钮来直接上传整个文件夹,如图3-12所示,依次点击图中数字所对应的地方,即可实现一次上传整个文件夹(及其子文件夹和所有文件)的功能。

图3-12上传文件夹图示

3.7 文件列表显示顺序

随着我们使用次数的增多,不可避免的同一个文件夹下会出现越来越多的文件,此时,不只是搜索功能,文件的排序功能同样对我们进行快速的文件查找能够起到重要作用。因此,本系统提供依照“文件名”、“创建日期”、“大小”、“创建者”这几类标签进行升序或降序排列的功能,如图3-13所示,当我们点击列表头部的标签时,旁边会显示箭头,我们点击箭头即可使当前文件夹下的文件按照此标签进行升序或降序的排列。当我们找到相关文件之后,若要要使其恢复原来的排列,亦可点击重置按钮恢复默认的显示顺序。

图3-13列表排序图示

3.8 文件下载功能

本系统设计了两种下载的方式可供用户进行选择:

(1)单个下载:

单个下载即点击所要下载的文件操作列中的下载按钮即可下载对应的文件,如图3-14所示

图3-14单个下载图示

点击之后首先会弹出提示,使用户进行二次验证,避免出现点错行的问题,如图3-15,点击取消即可取消本次操作,点击开始下载按钮系统继续行下一步。

图3-15下载验证图示

当我们点击开始下载之后,进一步弹出选择文件夹的选框,使用户选择将此文件下载至个人电脑的何处,如图3-15,选择之后点击保存按钮便完成本次操作,成功下载该文件至本地。

图3-15文件夹选择图示

(2)打包下载

页面文件列表的右上方有一个打包按钮,此功能是为了方便用户快速下载数目较多、但文件体积较小的零散文件(能够提高下载效率)和文件夹准备的。服务器会先将用户已经选中的文件或文件夹在服务器端“打包”即压缩为ZIP格式,之后再提供给用户进行下载。由于服务器端是如此进行先压缩再下载,所以该功能不推荐用于下载体积较大的文件——其压缩所需要的时间可能比用户直接下载所需的时间更多。同时,压缩也是一件特别耗费CUP资源的工作,会降低整个系统的性能,因此,当用户需要下载体积较大的文件时(大于500M),推荐直接使用单个下载功能进行下载。

同时打包下载需要我们一次选择多个文件或者文件夹,而普通的鼠标单机每次只能选择一个文件,本系统提供在页面中一次选择多个文件的功能为按下键盘Shift键的同时单击鼠标即可选择多个文件。另外同时按下Shift键和A键可以在当前文件夹下全选/取消全选,同时,点击页面的空白处可以取消当前选中的文件。

打包下载功能演示如图3-16,同时选中一个文件夹和两个文件,点击打包下载按钮即可。

图3-16打包下载图示

3.9 复制/移动文件

 本系统可以使用户像操作Windows系统的文件一样操作系统内的文件,如图3-17,选中想要处理的文件之后,点击操作按钮下的复制/剪切按钮,之后切换到想要粘贴至的文件夹,点击操作按钮下的粘贴按钮即完成本次操作。现如今,大多数人都在用Windows系统,对此功能了如指掌,因此这里不再赘述。

图3-17

3.10 各种文件的预览播放功能

 本系统最为有趣的一点在于提供了各种文件的预览播放功能,使用户不用将文件下载至本地即可观看文件的具体内容,下面对一些常见的文件类型进行展示:

(1)图片在线预览功能:

首先预览的前提是当前登录的账户对文件具有下载权限,此时用户点击操作列中的查看按钮即可对图片进行预览,如图3-18所示;现今,本系统支持的图片格式为:bmp/png/jpeg/gif,同时,同级文件夹内的所有图片可以进行批量预览,只需点击下方的左右切换按键即可,并且,图片查看器还支持翻转、旋转、全屏、缩放等功能。

当需要预览的图片过多时,本系统的图片查看器会对所有的图片进行分页展示。用户可以通过翻页功能来切换它们,以便获得更好的浏览体验。(提示:对于超过2MB的图片文件,本系统会自动进行压缩处理,以达到更快的预览速度,特别网速较为不好的情况下, 效果会更加显著。当然,该压缩操作只针对预览功能而不会影响系统中存在的图片原件。)

图3-18图片预览图示

(2)Word/TXT文件预览

登录的账户对具有下载权限的文件具有预览功能,点击操作列下的预览按钮即可进行预览。如图3-19所示:

图3-19文件预览图示

Word文档效果(打开中):

图3-20文档预览过程图示

Word文档效果(打开后):

图3-21文档预览效果图示

TXT效果(打开后):

图3-22txt预览效果图示

(3)PDF/PPT在线预览功能

同样登录的账户对具有下载权限的文件具有预览功能,点击操作列下的预览按钮即可进行预览。如图3-23所示:

图3-23文档预览图示

PDF效果(打开后):

图3-24PDF预览效果图示

PPT效果(打开中):

图3-25PPT预览过程图示

PPT效果(打开后):

图3-26PPT预览效果图示

提示:预览所示的格式可能与实际 Word 的版式有所差异,我们要以实际的版式为准。此外,PPT 预览功能暂时还无法解析动画效果,因此,一些较为复杂的 PPT 可能无法正确的进行预览。另:在打开 Word 或 PPT 文档的过程中,本系统将使用用户操作系统中已安装的字体显示其中的文本,如果用户的操作系统中未安装该 Word 或 PPT 文档所需的全部字体,那么本系统将自动使用内置的开源免费字体库“黑体”进行显示,不过,该字体无法确保所有文本均能正确显示,例如 Word 内嵌表格中的文本。

(4)音乐在线播放功能

登录的账户对具有下载权限的文件具有播放功能,点击操作列下的播放按钮即可进行播放。如图3-27所示;目前该系统支持的音乐格式为MP3、WAV、和OGG格式。其中MP3格式可以自动解析歌手和歌曲信息。同时,当用户将多个音频文件放在同一文件夹时,点击其中任意一个都会打开音乐播放组件并以列表的形式进行播放,点击切换按钮,可以切换播放的歌曲,还可以对播放的音量进行调节。

图3-27音频在线播放图示

音乐播放效果:

图3-28音频在线播放效果图示

(5)视频在线播放

同样登录的账户对具有下载权限的文件具有播放功能,点击操作列下的播放按钮即可进行播放。本系统目前支持的视频格式为:mp4、avi、flv、wmv、mkv等。

视频播放效果(加载中):

图3-29视频在线播放过程图示

视频播放效果(播放中):

图3-30视频在线播放效果图示

提示:在上述支持的视频格式中,除使用 AVC(H.264)格式编码的 MP4视频可直接播放外,其余格式均需经过内置的解码引擎解码后才能进行播放。解码过程需要耗费一定的时间(取决于视频大小),请用户耐心等待。视频解码过程仅需进行一次,即后续用户均可直接播放(无需再次等待解码),解码后的缓存文件会保存至服务器关闭。

3.11 后台用户账户与权限设置

 本系统的用户账户设置及权限管理操作均是通过修改账户配置文件的方式进行的,对于第一次接触使用这种操作方式的用户而言,它可能会显得有些陌生。不过,本系统针对的就是个人和小型团体,配置起来并不像想象中的那么困难,而且,当用户熟悉这种操作方式后,便会发现这种设计使用起来其实非常的简单和方便!

3.11.1 创建一个账户

当用户想要创建一个新用户时,只需打开配置文件,在空白处输入如图3-31所示的内容即可,每条设置均要独占一行:

图3-31创建用户图示

其中,{账户名} 应该由若干个英文字符、符号或数字组成(不支持中文设置,不可包含“=”、“:”或是以“#”开头等一些特殊符号),用于定义新账户的账户名; {该账户的密码}的设置规则同上(但是没有符号限制即何种符号都可以使用),用于定义该账户的登录密码;而 {该账户的 权限} 则用于定义该账户的操作权限,它由下列特定的字符组成(均为小写字母,可以连续,对顺序不做要求):

“c”:创建文件夹

“u”:上传文件

“d”:删除文件或文件夹

“r”:重命名文件或编辑文件夹

“l”:下载文件

“m”:移动/复制文件或文件夹(剪切/复制-粘贴)

下面设置一个账号来进行举例演示:

创建一个名为“zhenghang”的账号,并将其登录密码设置为“123456”,之后再为该账户赋予‘上传文件u’和‘下载文件l’的权限。如图3-32所示:

图3-32配置账户权限图示

提示:所设置的所有账户,其账户名彼此不能相同,必须唯一。

3.11.2 修改已有的账户信息

 同理,我们对一个已有账户的修改也非常简单,只需在该配置文件中直接对账户相关设置的项进行修改即可。如图3-33所示,将“zhenghang”账户的登录密码改为“111111”,只需简单修改即可实现!

图4-33修改用户登录密码图示

3.11.3 为账户设置小组

 我们还可以对账户添加一个额外的小组设置选项(该选项可以省略),其目的是为了控制账户的权限,使同一小组内的成员可以共同查看每个人共享的文件。其配置规则如图3-34所示:

图3-34配置账户小组属性图示

其中 {小组名} 可以使用任意英文字符或数字组成。当一个账户无该置 时,该账户将不属于任何小组。下面举例将“admin”用户和“zhenghang”用户都设置为小组“kind”的成员,如图3-35所示:

图3-35配置小组演示图示

此时,两者即同为“kind”小组的成员,可以互相查看对方创建的访问权限为‘仅小组’的文件夹。

3.12 本章小结

 本章对该系统实现的主要功能进行了详细的介绍,还有一些细小容易掌握的功能没在其中体现,例如切换文件夹功能、文件删除功能等。借由本章,用户可以对本系统具有更为清楚的认识,通过前端主要功能的介绍以及后端用户创建的描述,用户可以无障碍的直接对本系统进行体验,使用。

4 系统测试

 本系统是采用Java语言,使用Eclipse进行开发的。由于本人未部署至远程服务器中,因此是在本人计算机上(即本地)进行测试。

4.1 启动访问测试

 首先进入程序的入口类:kohgylw.kiftd.mc.MC,启动该类,使整个程序运行起来(包括Tomcat服务器)。如下图4-1所示:

图4-1启动系统图示

控制台无报错即为启动成功,如图4-2,接下来即可正常访问如图4-3。

图4-2启动控制台输出图示

图4-3访问系统图示

4.2 部分功能测试

 本系统实现的功能较多,下面对其部分功能进行测试展示。

4.2.1 新建文件夹测试

 已经登录并具有新建文件夹权限的用户即可点击操作按钮下的新建文件夹按钮进行文件夹创建,我们现状创建一个名为“ZH”的文件夹,如图4-4,创建成功!

图4-4成功创建文件夹图示

4.2.2 文件上传测试

 已经登录并具有文件上传权限的用户即可点击操作按钮下的上传问加按钮进行文件上传,如图4-5我们现状上传一张图片至“ZH”文件夹。

图4-5成功上传文件图示

再上传一部音频至此文件夹进行测试,如图4-6。

图4-6成功上传音频图示

4.2.3 预览播放功能测试

 本系统支持多种格式文件的预览功能,承接上文对图片预览功能以及音频播放功能进行测试,效果如下图4-7图4-8所示:

图4-7成功预览图片图示

图4-8成功在线播放音频图示

5 总结与展望

5.1 总结

随着时代的巨轮滚滚前进,科学技术也随着不断进步,现如今,我们每天所要面对的信息越来越多,所需存储的有用的文件也越来越大。在此之前我们常用的解决办法就是使用U盘,或者移动硬盘,但随着我们存储次数的逐渐频繁,所需存储的空间也越来越大,这种物理存储的弊端也就越来越难以忍受,费时,费力。基于这种现状,本系统应运而生。

本系统设计的初衷就是为解决以上问题,做完善的在线网盘系统。其具体实现的功能为:文件权限分类功能、访问登录功能、文件搜索功能、文件上传功能、文件下载功能、文件列表排序功能、移动/复制文件功能、各种文件的预览和播放功能。通过以上功能,用户可以简单便捷的实现日常的各种需要。

本系统使用Java作为编程语言,具体的JDK版本为1.8.0_131;使用的开发工具为Eclipse;使用H2数据库对整个系统数据进行设计、存储;系统整体采用B/S(Brower/Server)架构模式,使用户更为便捷的对本系统进行访问及使用。

在开发过程中,本人第一次了解到H2数据库,第一次将学到的Spring Boot和MyBatis框架组合起来应用到本系统中。在实践的过程中遇到了很多问题,包括程序设计之初的配置问题、jar包版本冲突问题以及代码编写中的技术问题,通过询问老师以及网上查阅最终克服这些问题,完成了这个使用简单且方便的网络文件传输系统。

通过网络文件传输系统的研究和设计,使我对Java后端框架的理解更加深入,对其使用也更为熟练;同时,对基本的数据结构、IO流的了解也更加深入,相信这些在之后的工作中也会给我带来很大的裨益。

5.2 展望

 在当今时代,随着人们使用越来越频繁的不只是电脑,手机亦成为我们日常生活中必不可少的重要工具。随着科技的进步,手机所能存储的体积也越来越大,而且手机存储在某些方面比电脑更加便捷,例如拍照。因此,人们在手机中存储的文件也越来越多,虽然手机中的文件可以较为简单的转移至电脑中,但是,实现手机文件的云存储亦是我们需要考虑的问题。

这是本系统目前所没有涉及到的方面,也是本系统下一步将要解决的问题!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科创工作室li

你的鼓励将是大学生的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值