jiangping
2024-10-30 f36dac411bab5e86dcc46ba504f4833b33363c46
server/system_service/src/main/java/com/doumee/core/utils/FtpUtil.java
@@ -1,6 +1,7 @@
package com.doumee.core.utils;
import java.io.*;
import java.util.Date;
import java.util.UUID;
import lombok.extern.slf4j.Slf4j;
@@ -15,6 +16,7 @@
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.apache.xpath.operations.Bool;
import sun.misc.BASE64Encoder;
/** */
@@ -235,9 +237,10 @@
   }
   public boolean uploadInputstream(InputStream inputStream, String remote)  {
      // 设置PassiveMode传输
      Date d1 = new Date();
      log.info("上传文件成功=============开始========="+DateUtil.getPlusTime2(d1));
      try {
         ftpClient.enterLocalPassiveMode();
         // 设置以二进制流的方式传输
         ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
         ftpClient.setControlEncoding("GBK");
@@ -259,6 +262,8 @@
         }else{
            log.error("上传文件失败======================="+remote);
         }
         Date d2= new Date();
         log.info("上传文件成功=============结束========="+DateUtil.getPlusTime2(d2) +"耗时秒:"+( (d2.getTime()-d1.getTime()) /1000));
         return result;
      }catch (Exception e){
         e.printStackTrace();
@@ -266,6 +271,42 @@
      }
      return false;
   }
   public boolean uploadInputstreamBatch(InputStream inputStream, String remote, Boolean close , Integer index )  {
      // 设置PassiveMode传输
      try {
         ftpClient.enterLocalPassiveMode();
         // 设置以二进制流的方式传输
         ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
         ftpClient.setControlEncoding("GBK");
         // 对远程目录的处理
         String remoteFileName = remote;
         if (remote.contains("/")) {
            remoteFileName = remote.substring(remote.lastIndexOf("/") + 1);
            // 创建服务器远程目录结构,创建失败直接返回
            if (Constants.equalsInteger(index,Constants.ONE) && StringUtils.equals(CreateDirecroty(remote, ftpClient), "2")) {
               log.error("创建ftp目录失败======================="+remote);
               return false;
            }
         }
         boolean result = ftpClient.storeFile(remoteFileName, inputStream);
         inputStream.close();
         if(close){
            ftpClient.logout();
         }
         if(result){
            log.info("上传文件成功======================"+remote);
         }else{
            log.error("上传文件失败======================="+remote);
         }
         return result;
      }catch (Exception e){
         e.printStackTrace();
         log.error("上传文件失败======================="+remote);
      }
      return false;
   }
   public int getNumFromStr(String str,char searchstr) {
      int count = 0;
      char[] charArray = str.toCharArray();