| src/main/java/org/springblade/common/config/FtpConfig.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/FTP/FtpUtil.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/FTP/monitor.java | ●●●●● patch | view | raw | blame | history | |
| src/main/resources/application-dev.yml | ●●●●● patch | view | raw | blame | history | |
| src/main/resources/application-test.yml | ●●●●● patch | view | raw | blame | history | |
| src/main/resources/application.yml | ●●●●● patch | view | raw | blame | history |
src/main/java/org/springblade/common/config/FtpConfig.java
@@ -42,15 +42,19 @@ /** * ftp服务器路径 * ftp服务器基础路径 */ public static String ftpPath; public static String ftpBasePath; /** * ftp服务器文件路径 */ public static String ftpFilePath; /** * 本地路径 */ public static String localPath; /** * minio内网ip @@ -81,8 +85,12 @@ FtpConfig.ftpPassword = ftpPassword; } public void setFtpPath(String ftpPath) { FtpConfig.ftpPath = ftpPath; public void setFtpBasePath(String ftpBasePath) { FtpConfig.ftpBasePath = ftpBasePath; } public void setFtpFilePath(String ftpFilePath) { FtpConfig.ftpFilePath = ftpFilePath; } public void setLocalPath(String localPath) { src/main/java/org/springblade/modules/FTP/FtpUtil.java
@@ -98,7 +98,6 @@ //OutputStream os = new FileOutputStream(localFile); //ftpClient.retrieveFile(fileName, os); os.close(); // 第二种方式下载:将输入流转成字节,再生成文件,这种方式方便将字节数组直接返回给前台jsp页面 byte[] input2byte = input2byte(retrieveFileStream); byte2File(input2byte, localPath, fileName); @@ -144,13 +143,14 @@ return result; } // 切换到上传目录 if (!ftpClient.changeWorkingDirectory(basePath + filePath)) { if (!ftpClient.changeWorkingDirectory(basePath +"/"+ filePath)) { // 如果目录不存在创建目录 String[] dirs = filePath.split("/"); String tempPath = basePath; String tempPath = ""; for (String dir : dirs) { if (null == dir || "".equals(dir)) if (null == dir || "".equals(dir)) { continue; } tempPath += "/" + dir; if (!ftpClient.changeWorkingDirectory(tempPath)) { if (!ftpClient.makeDirectory(tempPath)) { @@ -166,8 +166,10 @@ LOCAL_CHARSET = "UTF-8"; } ftpClient.setControlEncoding(LOCAL_CHARSET); ftpClient.enterLocalPassiveMode();// 设置被动模式 ftpClient.setFileType(FTP.BINARY_FILE_TYPE);// 设置传输的模式 // 设置被动模式 ftpClient.enterLocalPassiveMode(); // 设置传输的模式 ftpClient.setFileType(FTP.BINARY_FILE_TYPE); // 上传文件 filename = new String(filename.getBytes(LOCAL_CHARSET), SERVER_CHARSET); if (!ftpClient.storeFile(filename, input)) { @@ -301,7 +303,7 @@ } catch (FileNotFoundException e) { e.printStackTrace(); } FtpUtil.uploadFile(ftpHost, ftpPort, ftpUserName, ftpPassword, ftpPath, "/", "q"+response1+".json", in1); FtpUtil.uploadFile(ftpHost, ftpPort, ftpUserName, ftpPassword, ftpBasePath, ftpFilePath, "q"+response1+".json", in1); MysqlCenlint.deletess("q"+response1+".json"); } @@ -319,7 +321,7 @@ } catch (FileNotFoundException e) { e.printStackTrace(); } FtpUtil.uploadFile(ftpHost, ftpPort, ftpUserName, ftpPassword, ftpPath, "/", "w"+response1+".json", in1); FtpUtil.uploadFile(ftpHost, ftpPort, ftpUserName, ftpPassword, ftpBasePath, "/", "w"+response1+".json", in1); MysqlCenlint.deletess("w"+response1+".json"); } src/main/java/org/springblade/modules/FTP/monitor.java
@@ -6,10 +6,8 @@ import org.apache.commons.net.ftp.FTPReply; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.io.IOException; import java.io.InputStream; import static org.springblade.common.config.FtpConfig.*; @@ -20,160 +18,86 @@ public static boolean isFTPFileExist() { FTPClient ftp = new FTPClient(); String fileName = null; try { // 连接ftp服务器 // System.out.println("ftpHost = " + ftpHost); ftp.connect(ftpHost, ftpPort); // 登陆 ftp.login(ftpUserName, ftpPassword); // 检验登陆操作的返回码是否正确 if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) { ftp.disconnect(); return false; } ftp.enterLocalActiveMode(); // 设置文件类型为二进制,与ASCII有区别 ftp.setFileType(FTP.BINARY_FILE_TYPE); // 设置编码格式 ftp.setControlEncoding("GBK"); // 提取绝对地址的目录以及文件名 //ftpPath = ftpPath.replace("ftp://" + ftpHost + ":" + ftpPort + "/", ""); //String dir = ftpPath.substring(0, ftpPath.lastIndexOf("/")); // file = ftpPath.substring(ftpPath.lastIndexOf("/") + 1); // 进入文件所在目录,注意编码格式,以能够正确识别中文目录 //ftp.changeWorkingDirectory(new String(dir.getBytes("GBK"), FTP.DEFAULT_CONTROL_ENCODING)); // 检验文件是否存在 ftp.changeWorkingDirectory(ftpPath); // 切换到 ftpFilePath 文件目录 boolean directory = ftp.changeWorkingDirectory(ftpFilePath); FTPFile[] files = ftp.listFiles(); if (files.length==0){ return false; } else { } else { for (FTPFile file : files){ String fileName = file.getName(); fileName = file.getName(); InputStream is = ftp.retrieveFileStream(new String(fileName.getBytes("GBK"), FTP.DEFAULT_CONTROL_ENCODING)); String substring1 = fileName.substring(0, 1); if (substring1.equals("n")){ if (substring1.equals("q")){ //把文件下载到本地 FtpUtil.downloadFtpFile(ftpHost, ftpUserName, ftpPassword, ftpPort, ftpPath, localPath, fileName); // FtpUtil.downloadFtpFile(ftpHost, ftpUserName, ftpPassword, ftpPort, ftpFilePath, localPath, fileName); // 转换 String s = OutJson.TestJson(fileName); //sql语句 String sql = OutJson.stringReplace(s); String[] split = sql.split(";");//以逗号分割 for (String sqls : split) { //判断是否是新增,删除,修改 String substring = sqls.substring(0, 2); //新增 if (substring.equals("in")) { //运行sql语句 MysqlCenlint.inster(sqls); } //修改 else if (substring.equals("up")) { MysqlCenlint.update(sqls); } //删除 else { MysqlCenlint.delete(sqls); if (!sql.isEmpty()) { //以逗号分割 String[] split = sql.split(";"); for (String sqls : split) { //判断是否是新增,删除,修改 String substring = sqls.substring(0, 2); //新增 if (substring.equals("in")) { //运行sql语句 MysqlCenlint.inster(sqls); } //修改 else if (substring.equals("up")) { MysqlCenlint.update(sqls); } //删除 else { MysqlCenlint.delete(sqls); } } } //删除本地文件 //MysqlCenlint.deletes(fileName); MysqlCenlint.deletess(fileName); FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserName, ftpPassword, ftpPath, fileName); FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserName, ftpPassword, ftpFilePath, fileName); is.close(); ftp.completePendingCommand(); } } return true; } //InputStream is = ftp.retrieveFileStream(new String(file.getBytes("GBK"), FTP.DEFAULT_CONTROL_ENCODING)); // if (is == null || ftp.getReplyCode() == FTPReply.FILE_UNAVAILABLE) { // return false; // // } // // if (is != null) { // //把文件下载到本地 // FtpUtil.downloadFtpFile(ftpHost, ftpUserName, ftpPassword, ftpPort, ftpPath, localPath, fileName); // // // String s = OutJson.TestJson(); // //sql语句 // String sql = OutJson.stringReplace(s); // String[] split = sql.split(";");//以逗号分割 // for (String sqls : split) { // //判断是否是新增,删除,修改 // String substring = sqls.substring(0, 2); // //新增 // if (substring.equals("in")) { // //运行sql语句 // MysqlCenlint.inster(sqls); // } // //修改 // else if (substring.equals("up")) { // MysqlCenlint.update(sqls); // } // //删除 // else { // MysqlCenlint.delete(sqls); // } // } // //删除本地文件 // MysqlCenlint.delete(); // FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserName, ftpPassword, "anbao/", "nsql.json"); // is.close(); // ftp.completePendingCommand(); // // } } catch (Exception e) { System.out.println("ftp连接失败"); e.printStackTrace(); } finally { if (ftp != null) { try { ftp.disconnect(); } catch (IOException e) { e.printStackTrace(); } if (null!= fileName) { MysqlCenlint.deletess(fileName); FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserName, ftpPassword, ftpFilePath, fileName); } e.printStackTrace(); } finally { if (ftp != null) { try { ftp.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } return false; } src/main/resources/application-dev.yml
@@ -54,7 +54,8 @@ ftpPort: 21 ftpUserName: zhbain ftpPassword: zhbain@123 ftpPath: yly/qfqk/ ftpBasePath: yly ftpFilePath: qfqk localPath: /home/zhongsong/qfqk/ ip: http://47.49.21.216:9000 jsonUrl: /home/zhongsong/qfqk/ src/main/resources/application-test.yml
@@ -29,9 +29,9 @@ # username: root # password: ZHba@0112 url: jdbc:mysql://106.225.193.35:3306/qfqkpublic?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true&allowMultiQueries=true url: jdbc:mysql://192.168.0.126:3306/hcyj?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true&allowMultiQueries=true username: root password: HCyj@2022 password: NCzhba@2022 # PostgreSQL @@ -50,14 +50,24 @@ #ftp 设置 ftp: sqlConnect: jdbc:mysql://106.225.193.35:3306/qfqkpublic?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true ftpHost: 192.168.0.198 # ftpHost: 192.168.0.198 # ftpPort: 21 # ftpUserName: arsn # ftpPassword: 123456 # ftpBasePath: anbao # ftpFilePath: qfqk # localPath: D:\\anbao\\ # ip: http://47.49.21.216:9000 # jsonUrl: D:\\anbao\\ ftpHost: 117.40.91.118 ftpPort: 21 ftpUserName: arsn ftpPassword: 123456 ftpPath: anbao/ ftpUserName: zhbain ftpPassword: zhbain@123 ftpBasePath: yly ftpFilePath: qfqk localPath: D:\\anbao\\ ip: http://47.49.21.216:9000 jsonUrl: /home/zhongsong/qfqk/ jsonUrl: D:\\anbao\\ #第三方登陆 social: src/main/resources/application.yml
@@ -196,6 +196,7 @@ skip-url: - /blade-test/** - /blade-user/import-users - /zc/** #授权认证配置 auth: - method: ALL