【《基于SpringBoot的文件管理系统平台设计》10000字(论文)】_第1页
【《基于SpringBoot的文件管理系统平台设计》10000字(论文)】_第2页
【《基于SpringBoot的文件管理系统平台设计》10000字(论文)】_第3页
【《基于SpringBoot的文件管理系统平台设计》10000字(论文)】_第4页
【《基于SpringBoot的文件管理系统平台设计》10000字(论文)】_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于SpringBoot的文件管理系统平台设计摘要:当前,随着互联网技术的快速发展,各行业也开始借助互联网的力量进行转型升级,其中JavaEE在互联网技术中成为重要的组成部分。基于SpringBoot的文件管理平台,是针对个人用户电子文件存储需求而开发的一个平台,该平台主要功能是为个人用户提供文件存储服务,同时,用户可以查看存储在服务器上的文件状态。该平台前端采用热门框架Vue和ElementUI开发,后端主要采用SpringBoot框架开发,平台使用MySql数据库进行数据持久化,连接数据库采用MyBatis框架,文件加密主要使用AES和DES加密技术,同时使用MD5算法进行文件完整性校验。该平台为管理员和平台用户提供不同功能,为普通用户提供的主要功能有:文件上传、文件下载、文件删除、文件完整性校验、文件搜索、视频文件在线浏览、文件加密、文件回收站等;为管理员用户提供的主要功能有:查看用户所有信息、查看用户文件列表、修改用户密码等。这些功能基本满足个人用户对文件存储的需求,同时系统设计的功能也便于代码实现。关键字:文件管理;SpringBoot;ElementUI;MD5Abstract:Atpresent,withtherapiddevelopmentofInternettechnology,variousindustriesalsobegintousethepoweroftheInternettocarryouttransformationandupgrading,amongwhichJavaEEhasbecomeanimportantpartofInternettechnology.FilemanagementplatformbasedonSpringBoot,electronicdocumentstoragerequirementsforindividualusersanddevelopedaplatform,theplatformmainfunctionistoprovideafilestorageserviceforindividualusers,atthesametime,theusercanviewthefilestatusofstoredontheserver.ThefrontendoftheplatformisdevelopedbypopularframeworksVueandElementUI,thebackendismainlydevelopedbySpringBootframework,theplatformusesMySQLdatabasefordatapersistence,theconnectiondatabaseusesMyBatisframework,andthefileencryptionmainlyusesAESandDESencryptiontechnology.Atthesametime,MD5algorithmisusedtochecktheintegrityofthefile.Theplatformprovidesdifferentfunctionsforadministratorsandplatformusers.Themainfunctionsforordinaryusersare:fileuploading,filedownloading,filedeletion,fileintegrityverification,filesearch,videofileonlinebrowsing,fileencryption,filerecyclingstation,etc.Provideadministratorusermainfunctionsare:tocheckalltheuserinformation,viewthelistusers,modifyuserpassword,etc.Thesefunctionsbasicallymeettheneedsofindividualusersforfilestorage,whilethefunctionofthesystemdesignisalsoconvenientforcodeimplementation.Keywords:Filemanagement;SpringBoot;ElementUI;MD5目录论文总页数:24页第一章绪论 11.1课题研究背景及意义 11.2国内外研究现状 11.3本课题研究方法 1第二章系统核心技术研究 22.1开发工具环境介绍 22.2.1编辑器IntellijIDEA 22.2.2数据库工具Navicat 22.2SpringBoot框架 22.3MyBatis框架 22.4ElementUI框架 2第三章系统需求分析 33.1功能需求分析 33.2页面需求分析 3第四章系统设计 54.1系统功能设计 54.1.1用户登录与注册功能设计 54.1.2文件上传功能设计 54.1.3文件下载功能设计 54.1.4文件删除功能设计 54.1.5用户密码修改功能设计 54.1.6文件完整性校验功能设计 64.1.7用户文件详情查看功能设计 64.1.8文件搜索功能设计 64.1.9视频文件在线浏览功能设计 64.2系统数据库设计 64.2.1用户信息表设计 64.2.2文件信息表设计 6第五章系统实现 85.1用户登录与注册功能实现 85.2文件上传功能实现 95.3文件下载功能实现 105.4文件删除功能实现 115.5用户密码修改功能实现 125.6文件完整性校验功能实现 135.7用户文件详情查看功能实现 135.8文件搜索功能实现 145.9视频文件在线浏览功能实现 14第六章系统测试 166.1用户登录与注册功能测试 166.2文件上传功能测试 166.3文件下载功能测试 176.4文件删除功能测试 186.5用户密码修改功能测试 186.6文件完整性校验功能测试 196.7用户文件详情查看功能测试 196.8文件搜索功能测试 196.9视频文件在线浏览功能测试 20第七章总结与展望 217.1课题总结 217.2工作展望 21参考文献 22第一章绪论1.1课题研究背景及意义如今,随着互联网技术的不断发展,人们通过手机、电脑等设备在互联网获取信息也更加方便,在获取信息的同时就会产生了大量的电子文件。以前人们通过U盘、移动硬盘等存储设备来存储这些电子文件,如果这些存储设备保存不当,存储在这些设备中的电子文件就会丢失,电子文件的完整性和可靠性得不到保障。根据《国家电子文件管理工作规划(2011-2015年)》的相关精神,电子文件管理是我国实施信息化战略的重要任务,是新时期国家管理的基础性工作,对于确保国家信息安全、提升国家软实力具有重要意义[1]。因此,设计一个电子文件管理平台是十分必要的。1.2国内外研究现状目前,在国外商业化的文件管理系统软件中,比较典型的有Lotus公司的基于C/S结构的DocumentManager群件系统,还有IBM公司的MQseriesWorkflow,ActionTechnologies公司的Metro,FileNet公司的VisualWorkflow,JetForm公司的InTemp等产品[2]。国内市面上最著名的文档管理系统是Bentley文档管理系统、SecGateway文档管理系统、广州思昂文档管理系统、致得E6协同文档管理系统、炜邦图文档管理软件、德雅文档管理系统、易度文档管理系统[3]。但是市面上的文件管理系统并不能很好满足个人用户的电子文件管理的需求,同时现有的文件管理系统操作复杂,价格对于个人用户而言也过于昂贵。1.3本课题研究方法本次设计的系统根据个人用户对文件管理的的需求,使用前后端分离技术。系统采用MySql数据库保存用户信息和用户文件信息,采用MyBatis框架连接MySql数据库,后端采用SpringBoot框架接收前端请求,处理请求信息,同时通过MyBatis框架进行数据库操作。前端采用Vue和ElementUI的组合进行页面开发,使用ElementUI中提供的组件,在页面美观的同时也方便开发。使用JavaScript技术进行前端数据处理和逻辑控制,通过Axios发送请求与后端进行数据传递。第二章系统核心技术研究2.1开发工具环境介绍2.2.1编辑器IntellijIDEAIntellijIDEA在Java开发人员中的使用率已经大幅超过Eclipse。作为目前最流行的Java语言开发集成环境,IntellijIDEA功能强大方便调试,并且其代码提示与代码生成功能极大的提高了开发效率,所以采用它作为前后端开发的集成环境。2.2.2数据库工具NavicatNavicat是一个数据库管理工具,它支持大多数数据库的连接与管理,同时支持图形化的方式操作数据库。Navicat支持sql的运行,在开发过程中方便开发人员测试sql功能,同时也方便开发人员进行数据库的连接与管理,提高了开发效率。2.2SpringBoot框架SpringBoot是基于Spring设计的,继承了Spring的核心技术IOC与AOP,实现了模块之间,类之间的解耦合,同时SpringBoot不需要Spring的复杂配置。SpringBoot无需配置也无需配置中间件,在创建SpringBoot项目后直接运行就可以启动项目。SpringBoot使开发人员在创建项目的效率大幅提高。2.3MyBatis框架MyBatis是数据持久层的框架,MyBatis框架代替了JDBC使数据库操作变得更加简单。MyBatis支持逆向工程,根据数据库生成实体类和简单的sql,开发人员无需重复单表的增删改查操作,使开发效率提升。2.4ElementUI框架ElementUI是基于Vue的前端框架,ElementUI提供前端常用组件,开发人员可以直接使用组件来完成前端页面的需求,无须使用Html代码。第三章系统需求分析3.1功能需求分析电子文件管理系统是对用户电子文件等资源进行存储的一种信息技术系统,该系统需要同时满足管理员用户需求和普通用户性需求。管理员用户需要满足的功能:(1)登录功能:通过系统首页输入用户名和密码进行登录。(2)查看用户文件列表功能:查看用户文件名称,文件存储时的名称,文件大小,文件类型,加密类型,文件状态。(3)修改用户密码:可以修改指定用户的密码,当用户忘记密码时,可以联系管理员设置新的密码。普通用户需要满足的需求:(1)登录功能:通过系统首页输入用户名和密码进行登录。(2)文件上传功能:通过用户首页选择用户需要上传的文件,前端将文件流以及用户信息提交至后端,后端根据文件流生成文件,将文件保存到服务端。(3)文件下载功能:通过用户首页选择需要下载的文件(可多选),前端提交用户选择的文件信息至后端,后端获取需要下载的文件,返回前端文件流,前端根据文件流生成文件,完成下载功能。(4)文件加密功能:服务端根据用户文件上传时的信息加密文件,加密方式包括:AES加密和DES加密。AES加密模式为AES/ECB/PKCS5Padding。DES加密模式为DES/ECB/PKCS5Padding。(5)MD5功能:文件上传后会进行文件的MD5计算。(6)文件完整性校验功能:此功能会根据用户数据库中文件列表对文件逐一进行MD5计算,计算后会与上传时的MD5对比,结果会显示给用户。(7)文件删除回收功能:通过用户首页选择需要删除的文件(可多选),前端提交用户选择的文件信息至后端,后端获取需要删除的文件信息,修改数据库中该文件的状态。删除的文件在用户首页中不显示,用户可以在文件回收站中查看到删除的文件,在文件回收站中,用户可以删除或还原文件。(8)修改密码功能:用户需要输入旧的密码和新的密码,旧的密码验证无误后,将修改用户密码为新的密码。3.2页面需求分析页面设计需要满足简单快捷的原则,使用户进入系统后能够直观的获取到信息,页面操作设计应符合逻辑,使用户学习使用该系统的时间成本降低。具体页面功能描述如下:(1)登录注册页面:用户选择登录或注册,提供正确用户名和密码后,根据用户类型即可进入不同的系统页面(2)普通用户主页面:显示用户上传的文件信息包括:文件名称,文件大小,文件类型,文件MD5值,文件加密类型和操作。操作包括:删除和视频在线浏览。提供文件上传,文件下载,文件删除,文件查询以及回收站功能入口,还包括修改密码和文件完整性校验入口。(3)管理员用户主页面:显示用户名,用户总文件数,用户总文件大小,用户注册时间以及查看用户文件列表和修改用户密码功能入口。(4)文件搜索页面:用户可以输入文件名称或文件类型进行模糊查询。(5)文件上传页面:用户可以选择文件加密类型,可以多选需要上传的文件。(6)文件完整性校验页面:显示文件名称,文件大小,文件类型以及文件完整性情况。文件完整性情况包括:一致,不一致,文件不存在。第四章系统设计4.1系统功能设计4.1.1用户登录与注册功能设计管理员用户无需注册,使用系统提供的账号和密码登录,管理员用户输入账号和密码点击登录按钮,用户数据提交到后端。后端验证账号和密码后验证用户类型是否为管理员用户,全部验证通过后,返回前端用户为管理员用户类型,前端跳转至管理员用户主页,若验证失败,则返回前端错误信息。普通用户需要先注册,注册时填写用户名称和用户密码,用户密码需要填写两次,两次密码均相同时,点击注册按钮,数据提交至后端。后端先判断用户名是否被占用,未被占用时,将用户信息写入数据库,返回前端注册成功。前端页面跳转至普通用户主页。用户登录时,使用注册时的用户信息登录,点击登陆后数据提交至后端。后端验证用户信息,然后查询用户类型,用户类型为普通类型,则返回前端用户为普通用户类型,前端页面跳转至普通用户主页。4.1.2文件上传功能设计用户点击文件上传按钮时,显示文件上传页面,用户选择需要文件加密的方式(不加密、AES加密、DES加密)。然后用户选择本地文件,文件进入待上传区域,用户点击上传按钮后,文件及其相关信息提交至后端。后端将文件及其相关信息保存至数据库,文件按照用户需求加密后,保存至服务端,然后返回前端成功信息。4.1.3文件下载功能设计用户选中需要下载文件,点击下载按钮,前端提交文件信息至后端,后端查找文件,未找到文件时,返回前端文件不存在,文件存在时,返回前端文件流,前端根据文件流生成文件供用户下载。4.1.4文件删除功能设计普通用户在主页选择需要删除的文件,前端返回该文件信息,后端在数据库中逻辑删除该文件。用户可以在回收站中可以查看到删除的文件,在回收站中可以还原该文件或者删除该文件,在回收站中删除该文件后,后端会物理删除该文件。4.1.5用户密码修改功能设计管理员用户和普通用户都可以修改用户密码,管理员用户可以修改所有用户的密码,同时不需要验证用户信息,只需要验证管理员用户信息是否正确,普通用户修改密码时需要验证用户信息以及当前用户密码是否正确,然后修改该用户密码。4.1.6文件完整性校验功能设计普通用户在主页点击文件完整性校验,前端页面以列表的方式展示该用户所有的文件,后端会返回该用户文件的MD5值等。前端根据MD5值显示:一致、不一致、文件不存在。4.1.7用户文件详情查看功能设计普通用户只能查看该用户所有文件详情,管理员用户可以查看所有普通用户所有文件详情。管理员用户在管理员用户主页选择需要查看文件的用户,点击查看后,前端显示文件详情页面,页面需要展示文件名称、文件存放的名称、文件有效性、文件类型以及文件大小。4.1.8文件搜索功能设计普通用户在首页点击搜索按钮,前端显示搜索文件页面。用户根据页面提示输入文件名称或者文件类型。系统根据文件名称和文件类型模糊查询该用户所有符合条件的文件,然后显示在用户的主页面上。4.1.9视频文件在线浏览功能设计普通用户在用户首页上传视频文件(未加密)后,用户可以在主页面查看到该视频文件,点击文件在线浏览按钮后,显示视频播放页面,用户可以在该页面在线浏览该视频文件。4.2系统数据库设计4.2.1用户信息表设计用户表主要存储管理员用户和普通用户的相关信息。包括:用户注册时间,用户id,用户类型,用户名称以及用户密码。用户信息表见表4.1所示:表4.1用户信息表设计字段编码数据类型能否为空备注说明IdVarchar否用户id,使用注册时生成的uuidUser_nameVarchar否用户名称User_passwordVarchar否用户密码User_typeVarchar否用户类型,1代表普通用户,999代表管理员用户Create_timeVarchar否注册时间4.2.2文件信息表设计文件信息表主要存储用户上传的文件相关信息。包括:文件id,文件所有者id,文件名称,文件存放名称,文件存放位置,文件大小,文件MD5值,文件加密类型,文件密码,文件类型,有效标识。文件信息表见表4.2所示:表4.2字段编码数据类型能否为空备注说明Idbigint否文件id,自增User_idvarchar否文件所有者idFile_nameVarchar否文件名称File_pathVarchar否文件存放位置File_path_nameVarchar否文件存放名称File_typeVarchar否文件类型File_sizeVarchar否文件大小MD5varchar否文件MD5值Encryption_typeVarchar是文件加密类型Sercret_keyVarchar是文件密钥effectiveint否文件有效标识,0:有效,1:无效第五章系统实现5.1用户登录与注册功能实现管理员用户与普通用户共用一个登陆页面,用户登录时,需要输入用户账户和密码。前端通过login接口将用户名称和密码传递到后端,后端通过LoginDataVo接收请求参数。后端接收参数后,取出LoginDataVo中的password参数进行MD5计算,计算后将结果放会password中。然后通过service层中UserService的selectUser方法查询用户信息是否正确。若返回失败,前端提示用户登录失败,返回成功则前端通过userType接口查询用户类型。用户为管理员则跳转至adminPage页面,用户为普通用户则跳转至mainPage页面,然后将用户信息写入sessionStorage中,登录功能完成。登录功能核心代码如下:@ResponseBody@PostMapping("/login")publicStringlogin(@RequestBodyLoginDataVologinData){//LoginDataVo中包括name和password属性MD5md=newMD5();//创建MD5摘要对象loginData.setPassword(md.start(loginData.getPassword()));//使用md摘要对象的start方法对password进行计算Stringi=userService.selectUser(loginData.getName(),loginData.getPassword());//调用service层UserService的selectUser方法if(null==i){return"-1";//登陆失败}else{returni;//登录成功}}新用户使用该系统时先进行注册操作,用户输入用户名称,两次用户密码。两次输入的用户密码必须一致,否则前端会提示用户错误。用户点击注册按钮时,会进行前端用户输入的验证,验证通过后,前端通过register接口将注册者的信息传递到后端。后端通过User对象接收请求参数。后端根据请求参数先进行查询查找,该用户名称已经被占用则返回错误信息,前端根据错误信息提示用户该用户名称已经被占用,该用户名称未被占用则后端生成一个UUID作为该用户的id,输入的密码进行MD5计算,然后将这些信息保存至数据库中。注册功能核心代码如下:@ResponseBody@PostMapping("/register")publicStringregister(@RequestBodyUseruser){//User接收请求参数Stringi=userService.selectHaveUser(user.getUserName());//查询用户名称是否被占用if(null==i){//未被占用MD5md=newMD5();user.setUserPassword(md.start(user.getUserPassword()));//密码MD5计算Stringid=UUID.randomUUID().toString().replace("-","").toLowerCase();//生成UUIDuser.setId(id);//UUID作为用户idif(1==userService.insertUser(user)){//将用户信息写入数据库returnuser.getId();//写入数据库成功}return"-1";//写入数据库失败}else{//用户名称被占用return"-1";}}5.2文件上传功能实现用户点击文件上传按钮时,打开文件上传表单。用户选择文件加密方法,默认为不加密,用户可以选择AES加密或者DES加密。用户选择本地文件(可多选)后,点击提交按钮,文件及其相关信息将通过file/fileUpload接口提交到后端。后端通过MultipartFile和FileDataVo对象接收请求参数。其中MultipartFile对象接收文件流,FileDataVo对象接收用户以及加密方法等信息。然后后端获取文件的相关信息包括:文件名称、文件类型、文件大小、计算文件MD5值。若文件需要加密,则根据文件加密方法调用util中Encryption对象对文件进行加密,加密完成后将加密后的文件流保存到服务端上。AES加密模式为:AES/ECB/PKCS5Padding,DES加密模式为:DES/ECB/PKCS5Padding。加密密钥由Java提供的KeyGenerator对象提供,KeyGenerator对象根据文件MD5值加上文件上传的时间戳生成密钥。文件保存成功后根据文件信息将FileDataVo对象中的信息进行填充,然后将FileDataVo对象属性写入数据库。文件保存失败或文件信息写入数据库失败,将返回错误信息,前端提示用户文件上传失败。文件保存成功同时文件信息写入数据库成功后,将返回成功信息,前端提示用户文件上传成功。文件上传功能核心代码如下:DecimalFormatdecimalFormat=newDecimalFormat("0.00");//格式化文件大小两位小数Stringsize=decimalFormat.format((float)file.getSize()/1048576);//转换为MBif(size.equals("0.00")){size="0.01";}//文件过小时设置大小为0.01FileDataf=newFileData();//创建file对象--数据库添加数据使用f.setUserId(fileDataVo.getId());//放置数据f.setFileSize(size+"MB");f.setFilePath("D://file/MyFile/");Filefile1=MultipartFileToFile.multipartFileToFile(file);//MultipartFile转fileMD5md=newMD5();//获取文件md5值f.setMd5(md.start(FileUtils.readFileToString(file1,"utf-8")));f.setFilePathName(f.getMd5()+System.currentTimeMillis());f.setFileType(fileDataVo.getName().substring(fileDataVo.getName().lastIndexOf(".")).substring(1););//获取文件类型Stringname=fileDataVo.getName().substring(0,fileDataVo.getName().length()-type.length()-1);//获取文件名称f.setFileName(name);Filedest=null;//创建文件存放上传的文件if(!(fileDataVo.getEncryptionMode()==0)){dest=newFile(f.getFilePath()+f.getFilePathName()+"temp"+"."+type);}else{dest=newFile(f.getFilePath()+f.getFilePathName()+"."+type);}f.setMd5(md1.start(FileUtils.readFileToString(file2,"utf-8")));//设置文件MD5值5.3文件下载功能实现用户勾选文件列表中的文件(可多选)后,点击下载按钮,前端根据勾选的文件生成数组,数组中存放了文件信息包括:文件名称、文件类型、用户id等信息。前端遍历该数组,依次通过file/download接口提交单个文件信息,后端通过FileData对象接收请求参数。首先,后端通过FileData查询数据库获取文件存放在服务端的名称,然后判断文件是否存在,文件不存在直接返回错误信息,前端提示用户文件不存在;文件存在则判断文件加密方法,未加密的文件通过ResponseEntity对象返回文件流,加密过的文件则通过Encryption对象的decrypt方法解密,然后后端通过ResponseEntity对象返回解密后的文件流。@RequestMapping("/download")publicResponseEntitydownload(@RequestBodyFileDatafileData)throwsException{StringfileName=fileService.getFilePathName(fileData);//查询文件真实文件名FileSystemResourcefile=null;Filef=newFile("D:\\file\\MyFile\\"+fileName+"."+fileData.getFileType());if(f.exists()){//文件存在if("AES".equals(fileData.getEncryptionType())){//为AES加密文件//解密操作}elseif("DES".equals(fileData.getEncryptionType())){//为DES加密文件//解密操作}else{file=newFileSystemResource("D:\\file\\MyFile\\"+fileName+"."+fileData.getFileType());}//获取文件Longl=file.contentLength();InputStreamResourceinputStreamResource=newInputStreamResource(file.getInputStream());Filefile1=newFile("D:\\file\\MyFile\\"+fileName+"temp"+"."+fileData.getFileType());//删除临时文件if(file1.exists()){file1.delete();}returnResponseEntity.ok().contentLength(l).contentType(MediaType.parseMediaType("application/octet-stream")).body(inputStreamResource);//返回文件流}else{returnnull;}//文件不存在}5.4文件删除功能实现用户勾选文件列表中的文件(可多选)后,点击删除按钮,前端根据勾选的文件生成数组,数组中存放了文件信息包括:文件名称、文件类型、用户id等信息。前端遍历该数组,依次通过file/deleteFile接口提交单个文件信息,后端通过FileData对象接收请求参数。后端接收请求后,修改该文件的有效性字段为无效,此时并不会物理删除该文件,而是逻辑删除该文件。文件删除后,用户可以在文件回收站中查看到无效的文件,在文件回收站中可以进行无效文件的删除及还原。文件回收站中用户选择删除文件时不能多选只能单选,用户点击删除后,前端通过file/foreverDeleteFile接口提交需要删除文件的信息。后端通过FileData对象接收请求参数,然后通过数据库的查询获取该文件在服务端存放的名称,获取文件名称后,查看文件是否存在,文件存在则物理删除该文件,同时删除数据库中该文件记录,文件不存在返回错误信息,前端提示用户文件不存在,同时删除数据库中该文件记录。用户在文件回收站中选择文件还原时,前端通过file/reductionFile接口提交文件信息。后端通过FileData对象接收请求参数,通过文件信息修改数据库中该文件有效性字段为有效。前端核心代码如下:deleteFile(){this.$confirm('此操作将删除'+this.tableSelection.length+'个文件,是否继续?','提示',{confirmButtonText:'确定',cancelButtonText:'取消',type:'warning'}).then(()=>{//用户点击确认删除按钮for(leti=0;i<this.tableSelection.length;i++){//循环遍历需要删除文件的数组this.deleteOneFile(this.tableSelection[i].id,this.tableSelection[i].userId,this.tableSelection[i].fileName);}}).catch(()=>{ //用户点击取消按钮this.$message({type:'info',message:'已取消删除'});});},5.5用户密码修改功能实现管理员用户在管理员首页选择需要修改密码的用户,点击该用户后的修改密码后,前端页面显示修改密码页面,管理员用户需要在页面中输入该用户新的密码,点击提交按钮后,前端通过admin/updateUserPassword接口提交用户参数以及新设置的密码至后端。后端通过UserInfoVo对象接收所有请求信息,根据用户信息修改该用户密码,返回相关操作是否成功至前端,前端页面显示修改密码成功或失败。普通用户在用户主页直接点击修改密码按钮,前端显示修改密码页面,该页面需要输入旧的密码,输入两次新的密码,点击提交时,前端会进行表单验证,当全部输入而且两次新密码输入一致时通过updateUserInfo接口提交表单参数至后端。后端对新旧密码进行MD5计算,然后与数据库中用户数据对比,一致则修改用户密码为新的密码,返回前端是否修改成功,前端根据后端返回信息提示用户是否修改密码成功。用户密码修改核心密码如下:@ResponseBody@PostMapping("/updateUserInfo")publicStringupdateUserInfo(@RequestBodyUserInfoVouserInfoVo){//通过UserInfoVo接收参数MD5md=newMD5();userInfoVo.setPassword(md.start(userInfoVo.getPassword()));//旧的密码进行MD5计算MD5md1=newMD5();userInfoVo.setNewPassword(md1.start(userInfoVo.getNewPassword()));//新密码进行MD5计算Integeri=userService.updateUserInfo(userInfoVo);//进行数据库操作if(i==1){return"success";//数据库操作成功}else{return"fail";//操作失败}}5.6文件完整性校验功能实现普通用户在用户主页点击文件完整性校验后,前端根据文件信息表单生成一个关于文件的信息的数组,前端循环该数组,通过file/fileMd5接口提交文件信息至后端。后端通过FileData对象接收请求参数,然后通过文件信息查询数据库得到文件在服务端存放的地址和名称,文件不存在时返回0,文件存在就对文件进行MD5计算,返回MD5值,前端根据返回的MD5值与文件列表的MD5值进行比对显示给用户:一致、不一致、文件不存在三种状态。校验功能核心代码如下:@ResponseBody@RequestMapping("fileMd5")publicStringfileMd5(@RequestBodyFileDatafileData)throwsIOException{StringfileName=fileService.getFilePathName(fileData);//查询文件真实文件名Filefile=newFile("D:\\file\\MyFile\\"+fileName+"."+fileData.getFileType());if(file.exists()){//文件存在MD5md=newMD5();returnmd.start(FileUtils.readFileToString(file,"utf-8"));//MD5计算后返回}else{//文件不存在return"0";}}5.7用户文件详情查看功能实现普通用户在登陆后进入用户主页时,前端通过file/allData发送请求查询用户文件详情信息,后端通过User对象接收请求参数,然后后端通过请求参数查询数据库中所有该用户有效文件信息包括:文件名称,文件大小,文件MD5值,文件加密类型,文件类型等。前端根据后端返回的文件信息数组展示到用户主页上。管理员用户在管理员主页上选择需要查看的用户,点击查看后,前端通过admin/userFileInfo接口提交选择的用户的信息,后端首先验证管理员身份,然后通过该用户的信息进行数据库查询,查询出该用户所有的文件信息包括无效文件,查询的文件信息包括:文件名称、文件存储名称、文件类型、文件大小、文件加密类型以及文件状态。前端根据后端返回的文件信息数组将文件信息展示到文件详情页面。核心代码如下:@ResponseBody@PostMapping("/userInfo")publicList<AdminDataVo>userInfo(@RequestBodyUseruser){//查询用户是否为管理员if(999==adminService.selectAdminType(user)){//查询用户文件详情信息List<AdminDataVo>list=adminService.getUserInfo();returnlist;}returnnull;//该用户不为管理员用户}5.8文件搜索功能实现普通用户点击文件搜索时,前端显示文件搜索表单,需要用户输入文件名称或者文件类型名称,用户可以选择输入其中一项或两项,同时用户也可以不输入。前端通过file/selectMyFile接口提交文件搜索表单数据,后端通过FileData对象接收数据,然后查询数据库中该用户所有符合条件的有效文件,同时查询出相关文件信息返回至前端,前端后端返回的数据显示至用户主页上。文件查询sql如下:selectid,user_id,file_name,file_path,file_path_name,file_type,file_size,md5,encryption_type,secret_key,effectivefromfilewhereeffective=0anduser_id=#{userId,jdbcType=VARCHAR}andfile_namelikeCONCAT('%',#{fileName},'%')andfile_typelikeCONCAT('%',#{fileType},'%')5.9视频文件在线浏览功能实现视频文件在线播放功能在文件未加密并且文件格式为:mp4、webm、ogg、mkv时,才能使用视频文件在线播放功能。普通用户在用户主页上点击在线浏览时,前端通过file/showFile/{fileName}/{fileType}接口提交文件信息,此接口采用了RESTful风格。后端通过SpringBoot提供的@PathVariable注解分辨以及接收参数,然后通过文件参数查询文件存储名称,获取文件后将文件以视频流的方式返回至前端。前端通过video标签中的src属性指定后端返回的视频流,即可在线播放视频文件。核心代码如下:@RequestMapping("/showFile/{fileName}/{fileType}")publicvoidshowFile(HttpServletResponseresponse,@PathVariable("fileName")StringfileName,@PathVariable("fileType")StringfileType){try{Filefile=newFile("D:\\file\\MyFile\\"+fileName+"."+fileType);response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);response.setHeader

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论