IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 基于springboot,vue企业网盘系统 -> 正文阅读

[Java知识库]基于springboot,vue企业网盘系统

开发工具:IDEA

服务器:Tomcat9.0, jdk1.8

项目构建:maven

数据库:mysql5.7

系统分前后台,采用前后端分离

前端技术:vue+elementUI等框架实现

服务端技术:springboot+jpa

项目功能描述:

1.登录、注册、首页

2.用户管理:添加用户、修改用户、删除用户、查询用户、分配角色等功能

3.权限管理:

(1)角色列表:添加、修改、删除、分配权限

(2)权限列表

4.文件管理

(1)文件上传

(2)文件列表:分享文件、详情、下载文件、删除文件

5.个人中心:修改个人信息和修改密码

6.退出登录

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

package com.kcqnly.application.controller;

import com.kcqnly.application.common.Result;
import com.kcqnly.application.config.VerificationCode;
import com.kcqnly.application.entity.Permission;
import com.kcqnly.application.model.MenuParam;
import com.kcqnly.application.service.PermissionService;
import com.kcqnly.application.service.RoleService;
import com.kcqnly.application.service.UserService;
import com.kcqnly.application.utils.JwtTokenUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@RestController
public class LoginController {

@Autowired
private JwtTokenUtil jwtTokenUtil;
@Autowired
private UserService userService;
@Autowired
private RoleService roleService;
@Autowired
private PermissionService permissionService;

@GetMapping("/verifyCode")
public void verifyCode(HttpServletRequest request, HttpServletResponse resp) throws IOException {
    VerificationCode code = new VerificationCode();
    BufferedImage image = code.getImage();
    String text = code.getText();
    HttpSession session = request.getSession(true);
    session.setAttribute("verify_code", text);
    VerificationCode.output(image, resp.getOutputStream());
}

@GetMapping("/menus")
public Result getMenuList(HttpServletRequest request) {
    String token = request.getHeader("Authorization").replace("Bearer ", "");
    String username = jwtTokenUtil.getUsernameFromToken(token);
    List<Permission> parent = roleService.getParentPermission(userService.getUserRole(username));
    List<MenuParam> menuParamList = new ArrayList<>();
    for (Permission permission : parent) {
        menuParamList.add(new MenuParam(permission));
    }
    for (MenuParam menuParam : menuParamList) {
        List<MenuParam> childList = new ArrayList<>();
        for (Permission permission : permissionService.getTwoLevelChild(menuParam.getId())) {
            childList.add(new MenuParam(permission));
        }
        menuParam.setChildren(childList);
    }
    return Result.ok("成功",menuParamList);
}

}

package com.kcqnly.application.controller;

import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.kcqnly.application.common.Result;
import com.kcqnly.application.service.FileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.net.URL;
import java.net.URLEncoder;

@RestController
public class FileController {


    @Autowired
    private FileService fileService;
    @Value("${fileServer.url}")
    private String url;
    @Value("${fileServer.showUrl}")
    private String showUrl;
    @Value("${fileServer.groupName}")
    private String groupName;

    /**
     * 获取一级目录
     *
     * @return AjaxResult
     */
    @GetMapping("/file/getParentFile")
    @PreAuthorize("hasAuthority('文件列表')")
    public Result getParentFile() {
        return Result.ok(fileService.getParentFile(groupName, url));
    }

    /**
     * 指定目录获取
     *
     * @param dir
     * @return AjaxResult
     */
    @GetMapping("/file/getDirFile")
    @PreAuthorize("hasAuthority('文件列表')")
    public Result getDirFile(@RequestParam("dir") String dir) {
        return Result.ok( fileService.getDirFile(showUrl, url, dir));
    }

    /**
     * 删除文件
     *
     * @param md5
     * @return AjaxResult
     */
    @DeleteMapping("/file/delete/{md5}")
    @PreAuthorize("hasAuthority('删除文件')")
    public Result deleteFile(@PathVariable String md5) {
        if (fileService.deleteFile(url, md5)) {
            return new Result(Result.AJAX_SUCCESS,"删除成功");
        }
        return new Result(Result.AJAX_ERROR, "删除失败");
    }

    /**
     * 文件信息
     *
     * @param
     * @return AjaxResult
     */
    @PostMapping("/file/details")
    @PreAuthorize("hasAuthority('文件列表')")
    public Result details( String md5) {
        return fileService.details(url, md5);
    }

    /**
     * 下载文件
     *
     * @param path
     * @param name
     * @param response
     */
//    @PreAuthorize("hasAuthority('下载')")
    @GetMapping("/file/downloadFile")
    public void downloadFile(String path,String name, HttpServletResponse response) {
        response.setHeader("Content-Disposition", "attachment;filename=" + name);
        response.setContentType("application/octet-stream");
        BufferedInputStream in = null;
        try {
            URL url1 = new URL(url + "/" + path + "/" + name.replaceAll(" ","%20"));
            in = new BufferedInputStream(url1.openStream());
            response.reset();
            response.setContentType("application/octet-stream");
            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(name, "UTF-8"));
            // 将网络输入流转换为输出流
            int i;
            while ((i = in.read()) != -1) {
                response.getOutputStream().write(i);
            }
            response.getOutputStream().close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-09-25 23:07:17  更:2022-09-25 23:08:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:57:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码