管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2022-10-18 09b4103133939c8562e1768018ad6d4e6f0d67c8
1
已添加1个文件
已删除1个文件
已修改5个文件
218 ■■■■■ 文件已修改
src/main/java/com/lf/server/controller/data/UploaderController.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/entity/ctrl/LayerDto.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/helper/FileHelper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/helper/GdalHelper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/helper/StringHelper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/all/FileService.java 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
说明.txt 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/controller/data/UploaderController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
package com.lf.server.controller.data;
import com.lf.server.aspect.SysLog;
import com.lf.server.controller.all.BaseController;
import com.lf.server.entity.all.ResponseMsg;
import com.lf.server.service.all.FileService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * æ•°æ®ä¸Šä¼ 
 * @author WWW
 * @date 2022-10.17
 */
@Api(tags = "数据管理\\数据上传")
@RestController
@RequestMapping("/uploader")
public class UploaderController extends BaseController {
    @Autowired
    FileService fileService;
    @SysLog()
    @ApiOperation(value = "上传数据")
    @ResponseBody
    @PostMapping({"/uploadData"})
    public ResponseMsg<Object> uploadData(HttpServletRequest req, HttpServletResponse res) {
        try {
            fileService.uploadData(req, res);
            return success("");
        } catch (Exception ex) {
            return fail(ex.getMessage(), null);
        }
    }
}
src/main/java/com/lf/server/entity/ctrl/LayerDto.java
ÎļþÒÑɾ³ý
src/main/java/com/lf/server/helper/FileHelper.java
@@ -1,6 +1,7 @@
package com.lf.server.helper;
import java.io.File;
import java.util.Date;
/**
 * æ–‡ä»¶å¸®åŠ©ç±»
@@ -132,4 +133,13 @@
                return "application/octet-stream";
        }
    }
    /**
     * èŽ·å–ä¸´æ—¶è·¯å¾„
     *
     * @return
     */
    public static String getTempPath() {
        return StringHelper.YMD_HM_FORMAT.format(new Date());
    }
}
src/main/java/com/lf/server/helper/GdalHelper.java
@@ -1,6 +1,5 @@
package com.lf.server.helper;
import com.lf.server.entity.ctrl.LayerDto;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.gdal.gdal.Band;
@@ -154,14 +153,14 @@
        }
    }
    public static LayerDto getLayerDto(String filePath) {
    public static void getLayerDto(String filePath) {
        org.gdal.ogr.Driver driver = ogr.GetDriverByName("OpenFileGDB");
        if (driver == null) {
            return null;
            return;
        }
        List<Map> list = new ArrayList<>();
        List<Map<String, String>> mapList = new ArrayList<>();
        LayerDto layerDto = new LayerDto();
        DataSource dataSource = null;
        try {
            dataSource = driver.Open(filePath, 0);
@@ -208,10 +207,10 @@
                        feature.delete();
                    } while (true);
                }
                layerDto.setLayerName(strlayerName);
                layerDto.setList(list);
                layerDto.setCount(count);
                layerDto.setMap(mapList);
                //layerDto.setLayerName(strlayerName);
                //layerDto.setList(list);
                //layerDto.setCount(count);
                //layerDto.setMap(mapList);
            }
        } catch (Exception e) {
            e.printStackTrace();
@@ -220,7 +219,6 @@
                dataSource.delete();
            }
        }
        return layerDto;
    }
    /**
src/main/java/com/lf/server/helper/StringHelper.java
@@ -28,6 +28,16 @@
     */
    public static final SimpleDateFormat YMDHMS_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    /**
     * æ ¼å¼åŒ–当前系统日期 3
     */
    public static final SimpleDateFormat YMD__FORMAT = new SimpleDateFormat("yyyyMMdd_");
    /**
     * æ ¼å¼åŒ–当前系统日期 4
     */
    public static final SimpleDateFormat YMD_HM_FORMAT = new SimpleDateFormat("yyyyMMdd_HHmm");
    public static final double D1024 = 1024.0;
    /**
src/main/java/com/lf/server/service/all/FileService.java
@@ -31,6 +31,7 @@
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Date;
import java.util.List;
import java.util.UUID;
@@ -45,6 +46,14 @@
    @Autowired
    AttachService attachService;
    private final static double D92 = 92;
    private final static long ONE_DAY = 24 * 60 * 60 * 1000;
    private final static long SIZE_MAX = 1024 * 1024 * 1024 * 1024;
    private final static long FILE_SIZE_MAX = 256 * 1024 * 1024 * 1024;
    private final static Log log = LogFactory.getLog(FileService.class);
@@ -172,19 +181,16 @@
    /**
     * ä¸Šä¼ æ–‡ä»¶
     *
     * @param req
     * @param res
     */
    public void upload(HttpServletRequest req, HttpServletResponse res) {
    public void uploadData(HttpServletRequest req, HttpServletResponse res) {
        try {
            // å¤„理中文乱码问题
            req.setCharacterEncoding("utf-8");
            res.setContentType("text/html;charset=utf-8");
            // æ£€æŸ¥è¯·æ±‚是/否是multipart/form-data类型
            // æ£€æŸ¥è¯·æ±‚是/否为multipart/form-data类型
            if (!ServletFileUpload.isMultipartContent(req)) {
                throw new RuntimeException("表单的enctype属性不是multipart/form-data类型!!");
                throw new RuntimeException("表单的enctype属性不是multipart/form-data类型");
            }
            // åˆ›å»ºä¸Šä¼ æ‰€éœ€è¦çš„两个对象:磁盘文件对象+文件上传对象
@@ -192,18 +198,15 @@
            ServletFileUpload sfu = new ServletFileUpload(factory);
            ServletRequestContext ctx = new ServletRequestContext(req);
            //限制单个文件的大小
            sfu.setFileSizeMax(1024 * 10);
            //限制上传的总文件大小
            sfu.setSizeMax(1024 * 200);
            // é™åˆ¶ä¸Šä¼ çš„æ€»æ–‡ä»¶å¤§å°
            sfu.setSizeMax(SIZE_MAX);
            // é™åˆ¶å•个文件的大小
            sfu.setFileSizeMax(FILE_SIZE_MAX);
            // è®¾ç½®ç¼–码方式
            sfu.setHeaderEncoding("utf-8");
            // list容器用来保存表单中的所有数据信息
            List<FileItem> items = sfu.parseRequest(ctx);
            // éåŽ†å®¹å™¨ï¼Œå¤„ç†è§£æžçš„å†…å®¹ï¼šä¸€ä¸ªå¤„ç†æ™®é€šè¡¨å•åŸŸï¼Œä¸€ä¸ªå¤„ç†æ–‡ä»¶çš„è¡¨å•åŸŸ
            for (FileItem item : items) {
                if (item.isFormField()) {
@@ -281,4 +284,40 @@
            e.printStackTrace();
        }
    }
    /**
     * èŽ·å–ä¸´æ—¶è·¯å¾„
     */
    public String getTempPath() {
        String tempName = FileHelper.getTempPath();
        String tempPath = pathHelper.getConfig().getTempPath();
        String path = tempPath + File.separator + tempName;
        File file = new File(path);
        if (!file.exists() && !file.isDirectory()) {
            file.mkdirs();
        }
        double ran = Math.random() * 99;
        if (ran > D92) {
            deleteOldPath();
        }
        return path;
    }
    public void deleteOldPath() {
        try {
            Long time = System.currentTimeMillis();
            for (int i = 1, c = 30; i < c; i++) {
                Date date = new Date(time - i * ONE_DAY);
                String str = StringHelper.YMD__FORMAT.format(date);
                //
            }
        } catch (Exception ex) {
            log.error(ex.getMessage() + ex.getStackTrace() + "\n");
        }
    }
}
˵Ã÷.txt
@@ -4,21 +4,24 @@
3.登录时的用户名和密码使用RSA加密、解密
4.WebSocket服务
5.资源实时监控(CPU信息+内存信息+在线用户+资源状态)
.修改用户密码时使用MD5+Salt密码
.解决Swagger-UI无法传递Cookie信息
.密码复杂度验证(8-20位包含字母、数字和特殊字符)
6.新建和修改用户密码时使用MD5加密
7.解决Swagger-UI无法传递Cookie信息
8.验证密码复杂度(8-20位包含字母、数字和特殊字符)
-----------------------------------------------
.后台服务访问添加登录验证拦截器
.开发切面日志功能
.数据库监控(Druid Monitor)+自动登录
.下载文件并设置MIME类型
1.Redis服务配置强密码,SpringBoot启用密码
2.批量修改用户密码
3.修改所有的批量新增、删除、修改接口
4.使用GDAL读取tif、shp、gdb文件
5.5分钟密码错误5次拒绝登录 * <<
6.上传文件(commons-fileupload) *
.5分钟密码错误5次拒绝登录
.Redis服务配置强密码
.添加批量修改用户密码接口
.修改所有的批量新增、删除、修改接口
.使用GDAL读取tif、shp、gdb文件
-----------------------------------------------
1.上传文件(commons-fileupload) *
2.对用户、菜单、角色、资源进行授权
3.添加查询角色、菜单、资源权限接口
4.接口应用菜单权限
----------------------------------------------------------------------------------------------------
java è°ƒç”¨gdal读取gdb数据,linux下java调用gdal:
https://blog.csdn.net/weixin_53853459/article/details/120954597
@@ -61,6 +64,8 @@
new String(Base64.getDecoder().decode(username));
下载:http://127.0.0.1:12316/style/download?guid=15deb4e6bf02db827e39521758520fd5
使用Commons FileUpLoad组件实现文件上传功能:
https://www.itdaan.com/blog/2017/08/08/b2dbc1106fa7.html
----------------------------------------------------------------------------------------------------