Administrator
2022-06-13 f70d9a7b19b8451532de026bf1e6b2a5770c16bd
src/main/java/org/springblade/modules/FTP/FtpUtil.java
@@ -38,17 +38,21 @@
    * 获取FTPClient对象
    *
    * @param ftpHost     FTP主机服务器
    * @param ftpPassword FTP 登录密码
    * @param ftpUserName FTP登录用户名
    * @param ftpPasswordOut FTP 登录密码
    * @param ftpUserNameOut FTP登录用户名
    * @param ftpPort     FTP端口 默认为21
    * @return
    */
   public static FTPClient getFTPClient(String ftpHost, int ftpPort, String ftpUserName, String ftpPassword) {
   public static FTPClient getFTPClient(String ftpHost, int ftpPort, String ftpUserNameOut, String ftpPasswordOut) {
      FTPClient ftpClient = null;
      try {
         ftpClient = new FTPClient();
         //设置超时时间
         ftpClient.setDataTimeout(10000);
         //连接超时为60秒
         ftpClient.setConnectTimeout(10000);
         ftpClient.connect(ftpHost, ftpPort);// 连接FTP服务器
         ftpClient.login(ftpUserName, ftpPassword);// 登陆FTP服务器
         ftpClient.login(ftpUserNameOut, ftpPasswordOut);// 登陆FTP服务器
         if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
            logger.info("未连接到FTP,用户名或密码错误。");
            ftpClient.disconnect();
@@ -69,20 +73,20 @@
    * 从FTP服务器下载文件
    *
    * @param ftpHost     FTP IP地址
    * @param ftpUserName FTP 用户名
    * @param ftpPassword FTP用户名密码
    * @param ftpUserNameOut FTP 用户名
    * @param ftpPasswordOut FTP用户名密码
    * @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,
   public static void downloadFtpFile(String ftpHost, String ftpUserNameOut, String ftpPasswordOut, int ftpPort,
                              String ftpPath, String localPath, String fileName) {
      FTPClient ftpClient = null;
      try {
         ftpClient = getFTPClient(ftpHost, ftpPort, ftpUserName, ftpPassword);
         ftpClient = getFTPClient(ftpHost, ftpPort, ftpUserNameOut, ftpPasswordOut);
         // 设置上传文件的类型为二进制类型
         if (FTPReply.isPositiveCompletion(ftpClient.sendCommand("OPTS UTF8", "ON"))) {// 开启服务器对UTF-8的支持,如果服务器支持就用UTF-8编码,否则就使用本地编码(GBK).
            LOCAL_CHARSET = "UTF-8";
@@ -135,13 +139,13 @@
   }
   public static boolean uploadFile(String ftpHost, int ftpPort, String ftpUserName, String ftpPassword,
   public static boolean uploadFile(String ftpHost, int ftpPort, String ftpUserNameOut, String ftpPasswordOut,
                            String basePath, String filePath, String filename, InputStream input) {
      boolean result = false;
      FTPClient ftpClient = null;
      try {
         int reply;
         ftpClient = getFTPClient(ftpHost, ftpPort, ftpUserName, ftpPassword);
         ftpClient = getFTPClient(ftpHost, ftpPort, ftpUserNameOut, ftpPasswordOut);
         reply = ftpClient.getReplyCode();
         if (!FTPReply.isPositiveCompletion(reply)) {
            ftpClient.disconnect();
@@ -200,12 +204,12 @@
   }
   public static boolean deleteFile(String ftpHost, int ftpPort, String ftpUserName, String ftpPassword, String pathname,
   public static boolean deleteFile(String ftpHost, int ftpPort, String ftpUserNameOut, String ftpPasswordOut, String pathname,
                            String filename) {
      boolean flag = false;
      FTPClient ftpClient = new FTPClient();
      try {
         ftpClient = getFTPClient(ftpHost, ftpPort, ftpUserName, ftpPassword);
         ftpClient = getFTPClient(ftpHost, ftpPort, ftpUserNameOut, ftpPasswordOut);
         // 验证FTP服务器是否登录成功
         int replyCode = ftpClient.getReplyCode();
         if (!FTPReply.isPositiveCompletion(replyCode)) {
@@ -350,33 +354,52 @@
   public static void sqlFileUpload(String obj){
      String json1 = JSON.toJSONString(obj);
      String response1 = String.valueOf((new Date()).getTime());
      OutJson.createJsonFile(json1, localPath, "nsql"+response1);
      OutJson.createJsonFile(json1, localPath, "nq"+response1);
      FileInputStream in1 = null;
      try {
         in1 = new FileInputStream(new File(localPath + "nsql"+response1+".json"));
         in1 = new FileInputStream(new File(localPath + "nq"+response1+".json"));
      } catch (FileNotFoundException e) {
         e.printStackTrace();
      }
      FtpUtil.uploadFile(ftpHost, ftpPort, ftpUserName, ftpPassword, ftpPath, "/",  "nsql"+response1+".json", in1);
      MysqlCenlint.deletess("nsql"+response1+".json");
      FtpUtil.uploadFile(ftpHost, ftpPort, ftpUserNameOut, ftpPasswordOut, ftpPath, "/",  "nq"+response1+".json", in1);
      MysqlCenlint.deletess("nq"+response1+".json");
   }
   /**
    * 执行sql 上传,推送审查结果,json 命名用户id相同的文件名称一致
    * @param obj sql
    * @param id 用户id
    */
   public static void sqlFileUploadUserExamine(String obj,String id){
      String json1 = JSON.toJSONString(obj);
      OutJson.createJsonFile(json1, localPath, "nq"+id);
      FileInputStream in1 = null;
      try {
         in1 = new FileInputStream(new File(localPath + "nq"+id+".json"));
      } catch (FileNotFoundException e) {
         e.printStackTrace();
      }
      FtpUtil.uploadFile(ftpHost, ftpPort, ftpUserNameOut, ftpPasswordOut, ftpPath, "/",  "nq"+id+".json", in1);
      MysqlCenlint.deletess("nq"+id+".json");
   }
   /**
    * 执行 对象数据(用户,报名对象信息等) 上传
    * @param obj 对象信息
    * @param uuid
    */
   public static void objectFileUpload(Object obj){
   public static void objectFileUpload(Object obj,String uuid){
      String json1 = JSON.toJSONString(obj);
      String response1 = String.valueOf((new Date()).getTime());
      OutJson.createJsonFile(json1, localPath, "n"+response1);
      OutJson.createJsonFile(json1, localPath, "ni"+uuid);
      FileInputStream in1 = null;
      try {
         in1 = new FileInputStream(new File(localPath + "n"+response1+".json"));
         in1 = new FileInputStream(new File(localPath + "ni"+uuid+".json"));
      } catch (FileNotFoundException e) {
         e.printStackTrace();
      }
      FtpUtil.uploadFile(ftpHost, ftpPort, ftpUserName, ftpPassword, ftpPath, "/",  "n"+response1+".json", in1);
      MysqlCenlint.deletess("n"+response1+".json");
      FtpUtil.uploadFile(ftpHost, ftpPort, ftpUserNameOut, ftpPasswordOut, ftpPath, "/",  "ni"+uuid+".json", in1);
      System.out.println("用户新增,向外网推送数据结束.................");
      MysqlCenlint.deletess("ni"+uuid+".json");
   }
@@ -394,8 +417,26 @@
      } catch (FileNotFoundException e) {
         e.printStackTrace();
      }
      FtpUtil.uploadFile(ftpHost, ftpPort, ftpUserName, ftpPassword, ftpPath, "/",  "nl"+response1+".json", in1);
      FtpUtil.uploadFile(ftpHost, ftpPort, ftpUserNameOut, ftpPasswordOut, ftpPath, "/",  "nl"+response1+".json", in1);
      MysqlCenlint.deletess("nl"+response1+".json");
   }
   /**
    * 执行 对象数据(实操成绩导入反馈) 上传
    * @param obj 对象信息
    */
   public static void objectFileUploadExamScore(Object obj){
      String json1 = JSON.toJSONString(obj);
      String response1 = String.valueOf((new Date()).getTime());
      OutJson.createJsonFile(json1, localPath, "ne"+response1);
      FileInputStream in1 = null;
      try {
         in1 = new FileInputStream(new File(localPath + "ne"+response1+".json"));
      } catch (FileNotFoundException e) {
         e.printStackTrace();
      }
      FtpUtil.uploadFile(ftpHost, ftpPort, ftpUserNameOut, ftpPasswordOut, ftpPath, "/",  "ne"+response1+".json", in1);
      MysqlCenlint.deletess("ne"+response1+".json");
   }
   /**
@@ -412,13 +453,13 @@
      } catch (FileNotFoundException e) {
         e.printStackTrace();
      }
      FtpUtil.uploadFile(ftpHost, ftpPort, ftpUserName, ftpPassword, ftpPath, "/",  "nt"+response1+".json", in1);
      FtpUtil.uploadFile(ftpHost, ftpPort, ftpUserNameOut, ftpPasswordOut, ftpPath, "/",  "nt"+response1+".json", in1);
      MysqlCenlint.deletess("nt"+response1+".json");
   }
   /**
    * 向外网发送保安员证编号位数数据
    * @param map1
    * @param obj
    */
   public static void objectFileUploadSecurityNumberCount(Object obj){
      String json1 = JSON.toJSONString(obj);
@@ -430,7 +471,7 @@
      } catch (FileNotFoundException e) {
         e.printStackTrace();
      }
      FtpUtil.uploadFile(ftpHost, ftpPort, ftpUserName, ftpPassword, ftpPath, "/",  "ns"+response1+".json", in1);
      FtpUtil.uploadFile(ftpHost, ftpPort, ftpUserNameOut, ftpPasswordOut, ftpPath, "/",  "ns"+response1+".json", in1);
      MysqlCenlint.deletess("ns"+response1+".json");
   }
}