From 675ccd51874f9c005285eab3e4829e451848b4b6 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 07 六月 2023 11:11:29 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 java110-core/src/main/java/com/java110/core/client/FtpUploadTemplate.java |   45 ++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 40 insertions(+), 5 deletions(-)

diff --git a/java110-core/src/main/java/com/java110/core/client/FtpUploadTemplate.java b/java110-core/src/main/java/com/java110/core/client/FtpUploadTemplate.java
index ea42652..6df6f82 100755
--- a/java110-core/src/main/java/com/java110/core/client/FtpUploadTemplate.java
+++ b/java110-core/src/main/java/com/java110/core/client/FtpUploadTemplate.java
@@ -79,9 +79,6 @@
             } else if (imageBase64.contains("data:application/octet-stream;base64,")) {
                 imageBase64 = imageBase64.replace("data:application/octet-stream;base64,", "");
                 fileName += ".jpg";
-            } else if (imageBase64.contains(".mp4") || imageBase64.contains(".MP4") || imageBase64.contains(".AVI") || imageBase64.contains(".avi")
-                    || imageBase64.contains(".WMV") || imageBase64.contains(".wmv")) {
-                fileName += ".mp4";
             } else {
                 fileName += ".jpg";
             }
@@ -175,7 +172,7 @@
         String ftpPath = "/";
 
         if(fileName.contains("/")){
-            ftpPath = fileName.substring(0,fileName.lastIndexOf("/"));
+            ftpPath = fileName.substring(0,fileName.lastIndexOf("/")+1);
         }
 
         try {
@@ -191,6 +188,7 @@
             mkDir(ftpClient, ftpPath);// 鍒涘缓鐩綍
             // 璁剧疆涓婁紶鐩綍 must
             ftpClient.changeWorkingDirectory(ftpPath);
+
             if (FTPReply.isPositiveCompletion(ftpClient.sendCommand("OPTS UTF8", "ON"))) {// 寮�鍚湇鍔″櫒瀵筓TF-8鐨勬敮鎸侊紝濡傛灉鏈嶅姟鍣ㄦ敮鎸佸氨鐢║TF-8缂栫爜锛屽惁鍒欏氨浣跨敤鏈湴缂栫爜锛圙BK锛�.
                 LOCAL_CHARSET = "UTF-8";
             }
@@ -203,7 +201,7 @@
                 System.out.println("this file exist ftp");
                 ftpClient.deleteFile(fs[0].getName());
             }
-            boolean saveFlag = ftpClient.storeFile(fileName, inputStream);
+            boolean saveFlag = ftpClient.storeFile("/"+fileName, inputStream);
             if (!saveFlag) {
                 throw new IllegalArgumentException("瀛樺偍鏂囦欢澶辫触");
             }
@@ -402,4 +400,41 @@
             return false;
         }
     }
+
+
+    public InputStream download(String fileName, String server, int port, String userName, String userPassword) {
+        InputStream is = null;
+        ByteArrayOutputStream bos = null;
+        ByteArrayInputStream fis = null;
+        FTPClient ftpClient = new FTPClient();
+        try {
+            if (!ftpClient.isConnected()) {
+                ftpClient.connect(server, port);
+            }
+            ftpClient.login(userName, userPassword);
+            ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
+            ftpClient.enterLocalPassiveMode();
+            int reply = ftpClient.getReplyCode();
+            if (!FTPReply.isPositiveCompletion(reply)) {
+                ftpClient.disconnect();
+            }
+            String f = new String(
+                    ("/"+fileName).getBytes("GBK"),
+                    FTP.DEFAULT_CONTROL_ENCODING);
+            is = ftpClient.retrieveFileStream(f);// 鑾峰彇杩滅▼ftp涓婃寚瀹氭枃浠剁殑InputStream
+            if (null == is) {
+                throw new FileNotFoundException(fileName);
+            }
+
+        } catch (Exception e) {
+            logger.error("ftp閫氳繃鏂囦欢鍚嶇О鑾峰彇杩滅▼鏂囦欢娴�", e);
+        } finally {
+            try {
+                closeConnect(ftpClient);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        return is;
+    }
 }

--
Gitblit v1.8.0