From 8dda58f0c652dbe6a8307eedd431957acb1ec960 Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Sat, 21 Aug 2021 09:19:12 +0800
Subject: [PATCH] 1.ftp
---
src/main/java/org/springblade/modules/FTP/FtpUtil.java | 50 +++++-------
src/main/java/org/springblade/modules/FTP/FtpUploadFile.java | 2
src/main/java/org/springblade/modules/FTP/MysqlCenlint.java | 2
src/main/java/org/springblade/modules/FTP/FtpMain.java | 2
src/main/java/org/springblade/modules/FTP/monitor.java | 117 +++++++++++++++++++++++++++++
src/main/java/org/springblade/modules/FTP/OutJson.java | 4
src/main/java/org/springblade/modules/information/controller/InformationController.java | 14 ---
7 files changed, 142 insertions(+), 49 deletions(-)
diff --git a/src/main/java/org/springblade/common/utils/FtpMain.java b/src/main/java/org/springblade/modules/FTP/FtpMain.java
similarity index 96%
rename from src/main/java/org/springblade/common/utils/FtpMain.java
rename to src/main/java/org/springblade/modules/FTP/FtpMain.java
index 71b0f43..6397f59 100644
--- a/src/main/java/org/springblade/common/utils/FtpMain.java
+++ b/src/main/java/org/springblade/modules/FTP/FtpMain.java
@@ -1,4 +1,4 @@
-package org.springblade.common.utils;
+package org.springblade.modules.FTP;
import java.io.FileNotFoundException;
diff --git a/src/main/java/org/springblade/common/utils/FtpUploadFile.java b/src/main/java/org/springblade/modules/FTP/FtpUploadFile.java
similarity index 98%
rename from src/main/java/org/springblade/common/utils/FtpUploadFile.java
rename to src/main/java/org/springblade/modules/FTP/FtpUploadFile.java
index 9130c18..c35f666 100644
--- a/src/main/java/org/springblade/common/utils/FtpUploadFile.java
+++ b/src/main/java/org/springblade/modules/FTP/FtpUploadFile.java
@@ -1,4 +1,4 @@
-package org.springblade.common.utils;
+package org.springblade.modules.FTP;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/src/main/java/org/springblade/common/utils/FtpUtil.java b/src/main/java/org/springblade/modules/FTP/FtpUtil.java
similarity index 90%
rename from src/main/java/org/springblade/common/utils/FtpUtil.java
rename to src/main/java/org/springblade/modules/FTP/FtpUtil.java
index 2ecd30a..03c1f99 100644
--- a/src/main/java/org/springblade/common/utils/FtpUtil.java
+++ b/src/main/java/org/springblade/modules/FTP/FtpUtil.java
@@ -1,4 +1,4 @@
-package org.springblade.common.utils;
+package org.springblade.modules.FTP;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -11,13 +11,16 @@
/**
* ftp工具类
+ *
* @author lijj
*/
public class FtpUtil {
private final static Log logger = LogFactory.getLog(FtpUtil.class);
- /** 本地字符编码 */
+ /**
+ * 本地字符编码
+ */
private static String LOCAL_CHARSET = "GBK";
// FTP协议里面,规定文件名编码为iso-8859-1
@@ -26,18 +29,10 @@
/**
* 获取FTPClient对象
*
- * @param ftpHost
- * FTP主机服务器
- *
- * @param ftpPassword
- * FTP 登录密码
- *
- * @param ftpUserName
- * FTP登录用户名
- *
- * @param ftpPort
- * FTP端口 默认为21
- *
+ * @param ftpHost FTP主机服务器
+ * @param ftpPassword FTP 登录密码
+ * @param ftpUserName FTP登录用户名
+ * @param ftpPort FTP端口 默认为21
* @return
*/
public static FTPClient getFTPClient(String ftpHost, int ftpPort, String ftpUserName, String ftpPassword) {
@@ -65,19 +60,13 @@
/**
* 从FTP服务器下载文件
*
- * @param ftpHost FTP IP地址
- *
+ * @param ftpHost FTP IP地址
* @param ftpUserName FTP 用户名
- *
* @param ftpPassword FTP用户名密码
- *
- * @param ftpPort FTP端口
- *
- * @param ftpPath FTP服务器中文件所在路径 格式: ftptest/aa
- *
- * @param localPath 下载到本地的位置 格式:H:/download
- *
- * @param fileName 文件名称
+ * @param ftpPort FTP端口
+ * @param ftpPath FTP服务器中文件所在路径 格式: ftptest/aa
+ * @param localPath 下载到本地的位置 格式:H:/download
+ * @param fileName 文件名称
*/
public static void downloadFtpFile(String ftpHost, String ftpUserName, String ftpPassword, int ftpPort,
String ftpPath, String localPath, String fileName) {
@@ -101,16 +90,16 @@
InputStream retrieveFileStream = ftpClient.retrieveFileStream(fileNameTemp);
// 第一种方式下载文件(推荐)
- //File localFile = new File(localPath + File.separatorChar + fileName);
- //OutputStream os = new FileOutputStream(localFile);
- //ftpClient.retrieveFile(fileName, os); os.close();
+ //File localFile = new File(localPath + File.separatorChar + fileName);
+ //OutputStream os = new FileOutputStream(localFile);
+ //ftpClient.retrieveFile(fileName, os); os.close();
// 第二种方式下载:将输入流转成字节,再生成文件,这种方式方便将字节数组直接返回给前台jsp页面
byte[] input2byte = input2byte(retrieveFileStream);
byte2File(input2byte, localPath, fileName);
- if(null != retrieveFileStream){
+ if (null != retrieveFileStream) {
retrieveFileStream.close();
}
} catch (FileNotFoundException e) {
@@ -181,7 +170,7 @@
return result;
}
- if(null != input){
+ if (null != input) {
input.close();
}
@@ -293,4 +282,5 @@
}
}
}
+
}
diff --git a/src/main/java/org/springblade/common/utils/MysqlCenlint.java b/src/main/java/org/springblade/modules/FTP/MysqlCenlint.java
similarity index 98%
rename from src/main/java/org/springblade/common/utils/MysqlCenlint.java
rename to src/main/java/org/springblade/modules/FTP/MysqlCenlint.java
index 550cca0..86f4a22 100644
--- a/src/main/java/org/springblade/common/utils/MysqlCenlint.java
+++ b/src/main/java/org/springblade/modules/FTP/MysqlCenlint.java
@@ -1,4 +1,4 @@
-package org.springblade.common.utils;
+package org.springblade.modules.FTP;
import java.io.File;
diff --git a/src/main/java/org/springblade/common/utils/OutJson.java b/src/main/java/org/springblade/modules/FTP/OutJson.java
similarity index 98%
rename from src/main/java/org/springblade/common/utils/OutJson.java
rename to src/main/java/org/springblade/modules/FTP/OutJson.java
index 821e54d..5b99711 100644
--- a/src/main/java/org/springblade/common/utils/OutJson.java
+++ b/src/main/java/org/springblade/modules/FTP/OutJson.java
@@ -1,4 +1,4 @@
-package org.springblade.common.utils;
+package org.springblade.modules.FTP;
import java.io.*;
@@ -135,7 +135,6 @@
}
return result.toString();
}
-
/**
* 删除文件
* @param str
@@ -185,5 +184,4 @@
}
return localStrBulider.toString();
}
-
}
diff --git a/src/main/java/org/springblade/modules/FTP/monitor.java b/src/main/java/org/springblade/modules/FTP/monitor.java
new file mode 100644
index 0000000..2058172
--- /dev/null
+++ b/src/main/java/org/springblade/modules/FTP/monitor.java
@@ -0,0 +1,117 @@
+package org.springblade.modules.FTP;
+
+import org.apache.commons.net.ftp.FTP;
+import org.apache.commons.net.ftp.FTPClient;
+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;
+
+@Component
+public class monitor {
+ //ftp服务器IP地址
+ private static String ftpHost = "192.168.0.105";
+ //ftp服务器端口
+ private static int ftpPort = 21;
+ //ftp服务器用户名
+ private static String ftpUserName = "yly";
+ //ftp服务器密码
+ private static String ftpPassword = "Yly@123";
+ //ftp服务器路径
+ private static String ftpPath = "anbao/sql.json";
+
+ @Scheduled(cron = "*/5 * * * * ?")
+ public static boolean isFTPFileExist() {
+
+ FTPClient ftp = new FTPClient();
+
+ try {
+
+ // 连接ftp服务器
+
+ 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("/"));
+
+ String file = ftpPath.substring(ftpPath.lastIndexOf("/") + 1);
+
+ // 进入文件所在目录,注意编码格式,以能够正确识别中文目录
+
+ ftp.changeWorkingDirectory(new String(dir.getBytes("GBK"), FTP.DEFAULT_CONTROL_ENCODING));
+
+ // 检验文件是否存在
+
+ InputStream is = ftp.retrieveFileStream(new String(file.getBytes("GBK"), FTP.DEFAULT_CONTROL_ENCODING));
+
+ if (is == null || ftp.getReplyCode() == FTPReply.FILE_UNAVAILABLE) {
+ System.out.println(false);
+ return false;
+
+ }
+
+ if (is != null) {
+ System.out.println(true);
+ is.close();
+
+ ftp.completePendingCommand();
+
+ }
+
+ return true;
+
+ } catch (Exception e) {
+
+ e.printStackTrace();
+
+ } finally {
+
+ if (ftp != null) {
+
+ try {
+
+ ftp.disconnect();
+
+ } catch (IOException e) {
+
+ e.printStackTrace();
+
+ }
+
+ }
+
+ }
+
+ return false;
+
+ }
+}
diff --git a/src/main/java/org/springblade/modules/information/controller/InformationController.java b/src/main/java/org/springblade/modules/information/controller/InformationController.java
index 9eee520..0255a18 100644
--- a/src/main/java/org/springblade/modules/information/controller/InformationController.java
+++ b/src/main/java/org/springblade/modules/information/controller/InformationController.java
@@ -24,39 +24,27 @@
import org.springblade.common.cache.DictCache;
import org.springblade.common.enums.DictEnum;
-import org.springblade.common.utils.FtpUtil;
-import org.springblade.common.utils.MysqlCenlint;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.support.Kv;
-import org.springblade.core.tool.utils.Func;
-import org.springblade.modules.desk.entity.Notice;
-import org.springblade.modules.desk.vo.NoticeVO;
-import org.springblade.modules.desk.wrapper.NoticeWrapper;
import org.springblade.modules.jurisdiction.service.JurisdictionService;
import org.springblade.modules.jurisdiction.vo.JurisdictionVO;
-import org.springblade.modules.member.service.IMemberService;
-import org.springblade.modules.shareholder.service.IShareholderService;
import org.springblade.modules.system.entity.Dept;
import org.springblade.modules.system.service.IDeptService;
-import org.springblade.modules.system.service.IUserDeptService;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.modules.information.entity.Information;
-import org.springblade.modules.information.vo.InformationVO;
import org.springblade.modules.information.service.IInformationService;
import org.springblade.core.boot.ctrl.BladeController;
import springfox.documentation.annotations.ApiIgnore;
-import java.sql.*;
-import java.sql.DriverManager; //需要这个jar包 mysql-connector-java-5.1.49.jar
+
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
-import java.io.*;
import java.util.*;
import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
--
Gitblit v1.9.3