From 7338b6b7b0251c8884a2f29ea051710c1b6b8fa6 Mon Sep 17 00:00:00 2001 From: yanpengyang <1642433738@qq.com> Date: Fri, 24 May 2024 09:24:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0ftp=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=B1=BB=EF=BC=8C=E4=BB=A5=E5=8F=8A=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0fpt=E5=B7=A5=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/config/FTPConfig.java | 45 ++++++++++++------- .../com/ruoyi/common/utils/file/FTPUtils.java | 28 +++++++++--- 2 files changed, 52 insertions(+), 21 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/FTPConfig.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/FTPConfig.java index 70b7c8d99..9ccdbce34 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/config/FTPConfig.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/FTPConfig.java @@ -7,21 +7,36 @@ import org.springframework.context.annotation.Configuration; @ConfigurationProperties(prefix = "ftp") public class FTPConfig { - private String server; - private int port; - private String user; - private String password; + /** + * 服务地址 + */ + private static String serverUrl; - // Getters and Setters - public String getServer() { - return server; + /** + * 端口 + */ + private static int port; + + /** + * 用户名 + */ + private static String userName; + + /** + * 密码 + */ + private static String password; + + + public static String getServerUrl() { + return serverUrl; } - public void setServer(String server) { - this.server = server; + public void setServerUrl(String serverUrl) { + this.serverUrl = serverUrl; } - public int getPort() { + public static int getPort() { return port; } @@ -29,15 +44,15 @@ public class FTPConfig { this.port = port; } - public String getUser() { - return user; + public static String getUserName() { + return userName; } - public void setUser(String user) { - this.user = user; + public void setUserName(String userName) { + this.userName = userName; } - public String getPassword() { + public static String getPassword() { return password; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FTPUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FTPUtils.java index f0042a563..be6c8b0f8 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FTPUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FTPUtils.java @@ -10,14 +10,12 @@ import java.io.InputStream; public class FTPUtils { + public void uploadFile(String remotePath, MultipartFile file) throws IOException { - FTPClient ftpClient = new FTPClient(); - FTPConfig ftpConfig = new FTPConfig(); + + FTPClient ftpClient = this.getConnection(); + try { - ftpClient.connect(ftpConfig.getServer(), ftpConfig.getPort()); - ftpClient.login(ftpConfig.getUser(), ftpConfig.getPassword()); - ftpClient.enterLocalPassiveMode(); - ftpClient.setFileType(FTP.BINARY_FILE_TYPE); try (InputStream inputStream = file.getInputStream()) { boolean done = ftpClient.storeFile(remotePath, inputStream); @@ -27,6 +25,7 @@ public class FTPUtils { throw new IOException("Failed to upload file " + file.getOriginalFilename()); } } + } finally { if (ftpClient.isConnected()) { ftpClient.logout(); @@ -34,4 +33,21 @@ public class FTPUtils { } } } + + + /** + * 建立连接 + */ + private FTPClient getConnection() throws IOException { + + FTPClient ftpClient = new FTPClient(); + + ftpClient.connect(FTPConfig.getServerUrl(), FTPConfig.getPort()); + ftpClient.login(FTPConfig.getUserName(), FTPConfig.getPassword()); + ftpClient.enterLocalPassiveMode(); + ftpClient.setFileType(FTP.BINARY_FILE_TYPE); + + return ftpClient; + + } } \ No newline at end of file