赞
踩
目录
摘 要 1
Abstract 2
1.项目简介 3
1.1项目主要功能 4
1.2技术栈 4
1.3部署注意 4
2.数据库设计 5
2.1表结构 5
2.2ER图 7
2.3SQL插入 8
3.项目开发 9
3.1项目配置 9
3.2接口开发 10
3.3项目前端页面开发 12
3.4后端接口开发 21
3.4.1工具类 21
3.4.2restful接口(部分源码) 27
3.4.3FileService文件服务接口 31
4.项目展示 32
5.总结 35
6.更新 35
1.项目简介
因为开发中很多时候都需要上传和下载文件,所以想开发出一个模块,用于文件的上传和下载,自然而然也就想到了网盘,因为是个人开发,本文转载自http://www.biyezuopin.vip/onews.asp?id=14721所以版本项目应该会持续迭代,优化,此外,技术栈是springboot+mybatis+jquery+bootstrap。
1.1项目主要功能
•用户的邮箱注册、验证码验证以及用户登录。
•引入QQ第三方登录,为用户提供便捷的登录通道。
•不需要注册账号,也可以上传满足条件的临时文件,但是只4小时内有效。
•文件的管理,上传、下载、重命名、删除、查看统计数据、分类管理等。
•文件夹的管理,创建、删除、重命名。
•文件的分享,支持通过链接和二维码的分享方式。
•区分普通用户和管理员的角色,管理员可以修改普通用户的使用权限和网盘容量。
1.2技术栈
前端
•HTML、CSS、JavaScript、JQuery
•BootStrap以及多个插件
后端
•SpringBoot + MyBatis
•EhCache缓存
•ThymeLeaf 模板引擎
•腾讯QQ 第三方登录
•Ftp工具类、二维码工具类
部署
•阿里云轻量应用服务器
•Docker 环境
•FTP 服务
•MySQL 数据库
1.3部署注意
拉取项目到本地后,你需要修改一下配置信息
•application.yml:修改数据源信息以及邮箱服务端信息
•config.DruidConfig:修改druid登录的用户名和密码
•utils.FtpUtil:修改FTP服务器的基本信息
•utils.MailUtils:修改邮箱服务端发送方的邮箱
•resources.qqconnectconfig.properties:修改app_ID 和 app_KEY和 redirect_URI
3.项目开发 3.1项目配置 mybatis配置 <configuration> <!--关于MyBatis的一些常用配置--> <settings> <setting name="logImpl" value="STDOUT_LOGGING" /> <setting name="cacheEnabled" value="true"/> <setting name="lazyLoadingEnabled" value="true"/> <setting name="aggressiveLazyLoading" value="false"/> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> <plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"/> </plugins> </configuration> 3.2接口开发 @Mapper public interface FileFolderMapper { /** * @Description 根据文件夹的id删除文件夹 * @Author xw * @Date 15:18 2020/2/26 * @Param [fileFolderId] * @return java.lang.Integer **/ Integer deleteFileFolderById(Integer fileFolderId); /** * @Description 根据父文件夹的id删除文件夹 * @Author xw * @Date 15:18 2020/2/26 * @Param [parentFolderId] * @return java.lang.Integer **/ Integer deleteFileFolderByParentFolderId(Integer parentFolderId); /** * @Description 根据仓库的id删除文件夹 * @Author xw * @Date 15:18 2020/2/26 * @Param [fileStoreId] * @return java.lang.Integer **/ Integer deleteFileFolderByFileStoreId(Integer fileStoreId); /** * @Description 增加文件夹 * @Author xw * @Date 15:18 2020/2/26 * @Param [fileFolder] * @return java.lang.Integer **/ Integer addFileFolder(FileFolder fileFolder); /** * @Description 根据文件夹的id获取文件夹 * @Author xw * @Date 15:18 2020/2/26 * @Param [fileFolderId] * @return com.moti.entity.FileFolder **/ FileFolder getFileFolderById(Integer fileFolderId); /** * @Description 根据父文件夹的id获取文件夹 * @Author xw * @Date 15:18 2020/2/26 * @Param * @param null * @return **/ List<FileFolder> getFileFolderByParentFolderId(Integer parentFolderId); /** * @Description 根据仓库的id获取文件夹 * @Author xw * @Date 15:19 2020/2/26 * @Param [fileStoreId] * @return java.util.List<com.moti.entity.FileFolder> **/ List<FileFolder> getFileFolderByFileStoreId(Integer fileStoreId); /** * @Description 获得仓库的文件夹数量 * @Author xw * @Date 21:56 2020/2/10 * @Param [fileStoreId] * @return java.lang.Integer **/ Integer getFileFolderCountByFileStoreId(Integer fileStoreId); /** * @Description 根据仓库Id获得仓库根目录下的所有文件夹 * @Author xw * @Date 23:49 2020/2/9 * @Param [fileStoreId] * @return java.util.List<com.molihub.entity.FileFolder> **/ List<FileFolder> getRootFoldersByFileStoreId(Integer fileStoreId); /** * @Description 根据文件夹的id修改文件夹信息 * @Author xw * @Date 15:19 2020/2/26 * @Param [fileFolder] * @return java.lang.Integer **/ Integer updateFileFolderById(FileFolder fileFolder); /** * @Description 根据文件夹的id获取文件夹下面的文件 * @Author xw * @Date 15:19 2020/2/26 * @Param [fileStoreId] * @return java.util.List<com.moti.entity.MyFile> **/ List<MyFile> getFileByFileFolder(Integer fileStoreId); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。