第42卷 第2期
华北理工大学学报(自然科学版)V o l .42 N o .22020年04月J o u r n a l o fN o r t hC h i n aU n i v e r s i t y o f S c i e n c e a n dT e c h n o l o g y (N a t u r a l S c i e n c eE d i t i o n )A p
r .2020  收稿日期:2019-09-14 修回日期:2020-03-16基金项目:国电南瑞科技项目(项目编号:B 4460919003700)㊂  作者简介:周志成(1989~),男,工程师㊂研究方向:综合能源服务与管控系统的设计与开发㊂  D O I :10.3969/j
.i s s n .2095-2716.2020.02.018文章编号:2095-2716(2020)02-0133-08
企业在线文档管理系统设计与实现
周志成1,
2,柳纲1,2,杨宇峰1,2,龚广京1,2(1.南瑞集团(国网电力科学研究院)有限公司,江苏南京210006;2.国电南瑞科技股份有限公司,江苏南京210006
)关键词:B S 架构;S p r i n g MV C ;文档管理系统摘 要:随着信息化技术的不断发展,企业内部文档在线管理的需求日益突出㊂基于B S 架
构,该项研究提出了一种使用S p r i n g MV C 框架的在线文档管理系统设计方案㊂该系统可实现文件的上传㊁下载㊁删除㊁复制㊁移动㊁重命名以及文件夹整体上传和下载等操作,并支持
w o r d ㊁P P T ㊁e x c e l ㊁P D F 等常见类型文档的在线预览及全文检索功能㊂此外,
该项研究提出了一种文件快速检索定位算法,可实现多条件文件检索㊂由于该系统在企业内部网络部署中具
有使用安全㊁方便的特点,故具有一定的应用价值㊂
中图分类号:T P 315 文献标识码:A
随着计算机的普及和信息化技术的发展,纸质文档资料已经基本被电子化替代㊂随着企业规模扩大和正规化发展,企业内部文档内容日益丰富㊁数量日益增多,但依然存在如下问题:首先,数量巨大的各类文档
springmvc作用通俗分布在各个计算机中,众多文件无法在企业内部共享[1];其次,在众多文件中检索特定文件费时费力;另外文件线下拷贝分发极其不便[1,2]㊂由于实现文件的在线管理迫在眉睫,而商用网络硬盘等文件管理系统又涉及安全问题,企业文档尤其是涉密资料不适合在这些系统上存储,因此该项研究基于企业内部网络部署设计
了一个安全在线文档管理系统并进行了软件实现㊂该系统基于B /S (浏览器/服务器)模式,采用S p r i n g
MV C 分层架构,
实现了目录及文件的上传㊁下载㊁复制㊁移动㊁删除㊁重命名以及文件夹整体上传和下载功能,并支持w o r d ㊁P P T ㊁e x c e l ㊁P D F 以及T X T 等常见类型文档的在线预览功能㊂此外,
该系统还支持按照条件或全文检索文件㊂1文档管理需求分析
该系统设计的目的是为了解决企业内部文档的安全㊁便捷存储问题,因此系统应该满足安全性㊁高效性㊁可扩展性和简单易用的要求[3,4]㊂对各项要求分别阐述如下:安全性:首先,该系统部署于企业内部局域网中,可有效避免来自互联网的网络攻击行为㊁降低敏感文档泄密的几率;其次,只有登录认证的用户才能使用该系统,只有经过相应授权的用户才能进行相应操作,从而保证了系统的安全性㊂
高效性:对系统业务流程进行合理设计,对业务逻辑进行必要优化,提高系统的可用性和流畅度㊂可扩展性:系统使用B /S 架构,
具体分为展示层㊁业务层和持久化层㊂分层设计使得系统功能扩展或升级迭代变得容易㊂简单易用:系统采用B /S 架构,
用户只需使用装有浏览器的计算机就可以使用该系统,无需额外安装软件,对客户端机器性能业务无苛刻要求,方便用户使用㊂此外,系统在设计上充分考虑用户操作习惯,接近商
用网盘操作系统,努力做到简单易用㊂
就其功能而言,系统应满足文档管理的基本操作需求,并在此基础上提供部分高级功能㊂系统的功能框图如图1所示
图1 企业在线文档管理系统功能框图
2技术选型
S p r i n g MV C 作为一款轻量级的企业应用开发框架,已在企业级应用开发中得到广泛应用[5]㊂S p r i n g MV C 框架以MV C 作为设计模式,
其核心思想是使业务逻辑㊁数据持久化和前端界面相分离,它可以让每一功能模块单独工作且可以对某一部分作出修改而对其它部分不产生影响,方便应用功能扩展和升级㊂使用
S p r i n g MV C 框架可以提高开发效率,降低系统后期维护和应用迭代升级成本,因此该系统选择S p r i n g MV C 作为系统开发框架㊂
该系统选择开源的T o m c a t 作为w e b 中间件,T o m c a t 完全开源,完美支持J S P ㊁S e r v l e t 和J D B C 等
J 2E E 关键技术,已在大量中小型应用中得到广泛使用㊂因为o r a c l e 作为大型关系型数据库的代表,
性能优势明细,并且拥有良好的技术支持,所以选择o r a c l e 作为数据库㊂此外,
本系统中还使用了大量开源技术,将在后续章节中详述㊂3关键技术及算法
3.1 技术路线概述
该系统将文件实体存储在文件服务器上,而将文件存储位置等信息存储在关系型数据库中,同时对文件操作做日志记录并持久化于数据库之中㊂用户可以根据需要建立相应的目录结构,进行上传㊁删除㊁移动文件等操作㊂为了防止文件服务器同一路径下同名文件覆盖,所有的目录或文件经特定算法转义处理后保存在文件服务器上,数据中同时保存原始名称和转义以后的名称,原始名称供页面显示时使用,转义后的名称用来寻文件的真实路径和名称㊂
3.2 文件上传和下载
普通的文件上传㊁下载为常见功能,利用常规的文件流操作即可完成,此处不再赘述㊂
3.3 文件夹上传
该系统提供文件夹整体上传的功能,保存至服务器的文档和上传的文档保持相同的目录结构㊂对于目
431      华北理工大学学报(自然科学版)            第42卷
录层次较多的文档,该操作对提高操作效率作用明显㊂文件夹整体上传的业务逻辑如下:(1)将客户端需要上传的文件夹整体(包含其所有子文件夹及其包含的所有文件)保存至文件文件服务器的某个临时位置;
(2)依次遍历生成的临时文件夹,对遍历过程中的每一项:如果是文件,则将该文件名称转义后保存至文件服务器指定位置,并同时在数据库中增加相应记录;如果是文件夹,则在指定位置建立相应文件夹并同时在数据库中增加相应记录,此外还要递归调用方法,直至临时目录下所有文件或文件夹处理完成;
(3)删除临时文件夹及其包含的子文件夹和包含的所有文件;(4)前端页面显示上传成功的提示信息㊂3.4 文件打包下载
如果需要同时下载多个文件,单个文件逐一下载的方式会造成使用不便,因此该系统设计实现了多文件或文件夹整体打包下载功能㊂只需同时勾选多个文件或文件夹,点击下载按钮,系统便会将选中的文件或文件夹打包并以压缩包的形式下载至客户端机器,所有文件会保持服务器上原有的目录层次㊂多文件打包下载的业务逻辑如图2所示
图2 多文件下载业务流程
3.5 文件检索文件检索即根据一个或多个关键字快速定位到用户需要的特定文件㊂该系统中的目录可以根据用户需要而自由建立,文件名称也可以修改,因此可以使用文件路径的各级目录及文件名中的特征词作为关键字,从而检索到用户需要的文件㊂用户输入的特征词可以来自文件路径中一个目录或多个目录㊁文件名,或者是两者的组合,输入的特征词越多,检索的文件越精确㊂此外,当用户输入多个目录中的特征词时,不能限制用户一定按照目录层次由上到下的顺序输入㊂因此,如何根据用户输入条件快速定位到特定的文件需要精心设计一种算法㊂该系统中约定,当具有多个检索条件时,如果特征词仅来自文件路径中的目录或者文件名称,多个条件之间以单个空格间隔;如果多个检索条件为两者的组合,2类特征词内部以单个空格间隔,2类
条件之间以双空格间隔,并且目录中的特征词在前(下文中称之为第1类特征条件),文件名称中的特征词
5
31 第2期          周志成,
等:企业在线文档管理系统设计与实现
631华北理工大学学报(自然科学版)第42卷(下文中称之为第2类特征条件)在后㊂文件检索的完整业务流程图如图3所示㊂
图3文件检索业务流程
其中,第1类特征条件的检索算法流程如下:
(1)获取所有的目录a l l D i r s,初始化集合d i r s作为满足查询条件的目录集合,初始化计数器s t a r t I n d e x 并置为1;
(2)查询满足第1个查询条件的目录,如果能查询到结果,将结果加入到集合d i r s中,执行(3);如果没有查询到结果则执行(8);
(3)获取第s t a r t I n d e x+1个关键字k e y w o r d,遍历(2)中获取到的集合d i r s,对其中的每个目录d i r,获取其所有上级目录s u p e r D i r s(包括其上级目录及其更上层的目录)和其所有下层目录s u b D i r s(包含其子目录以及更下层的目录);
(4)遍历s u p e r D i r s,如果s u p e r D i r s中某一项包含关键字k e y w o r d,则停止遍历并将d i r从d i r s中移除;
(5)遍历s u b D i r s,如果s u b D i r s中某一项包含关键字k e y w o r d,则将其加入到d i r s中;
(6)计数器s t a r t I n d e x++;
(7)如果所有检索关键已处理,执行(8);否则执行(3);
(8)查询出集合d i r s中所包含的所有文件信息,序列化返回给前台展示㊂流程结束㊂
3.6文本文件在线预览
文本文件是一种常见的文件类型,该系统设计并实现了文本文件在线预览方案㊂该系统将文本文件分为普通文本文件和代码源码文件,普通文本文件就是除代码源码文件之外的其它文本文件㊂该系统中的文本文件阅读器基于C o d e M i r r o r开发㊂C o d e M i r r o r是一款开源的J a v a S c r i p t插件[6],其功能十分强大并提供了详细的A P I,使用方便㊂该插件能较好地展示文本,并可以按照不同编程语言的语法规则,高亮显示代码源码㊂它几乎支持所有常见的编程语言,只需简单地将模式设置成对应的编程语言即可㊂该系统中普通文本文件和代码源码文件的在线预览效果如图4和图5所示㊂
图4 普通文本文件在线预览效果
图5 代码源码文件在线预览效果  3.7 P D F 文件在线预览
P D F 文件是另一种常见的文档格式,本系统支持P D F 文件的在线预览㊂除I E 系浏览器外,
几乎所有的现代浏览器都支持P D F 文件在线预览功能,但浏览器只能默认以新的t a b 页方式打开P D F 文件,
不利于系统集成,用户体验不佳㊂为兼容不同浏览器,提升客户使用体验,该系统集成P D F .j s 框架作为P D F 文件浏览器㊂P D F .j s 可以实现在h t m l 下直接浏览P D F 文档,是一款开源的P D F 文档读取解析插件[7]㊂它的功7
31 第2期          周志成,等:企业在线文档管理系统设计与实现

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。