当前位置:   article > 正文

基于springboot和ftp实现的网盘文件系统_基于springboot的网盘

基于springboot的网盘

目录
摘 要 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);

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/572950
推荐阅读
相关标签
  

闽ICP备14008679号