diff --git a/pom.xml b/pom.xml index 4a858d234..24f2d75d0 100644 --- a/pom.xml +++ b/pom.xml @@ -1,6 +1,6 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 com.ruoyi @@ -10,7 +10,7 @@ ruoyi http://www.ruoyi.vip 若依管理系统 - + 4.7.9 UTF-8 @@ -30,6 +30,8 @@ 2.13.0 4.1.2 2.3 + 3.10.0 + @@ -60,7 +62,7 @@ druid-spring-boot-starter ${druid.version} - + pro.fessional @@ -193,6 +195,17 @@ ${ruoyi.version} + + + + commons-net + commons-net + ${commons-net.version} + + + + + diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index d0abcabbe..8d0f3b1a2 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -30,7 +30,7 @@ server: max: 800 # Tomcat启动初始化的线程数,默认值10 min-spare: 100 - + # 日志配置 logging: level: @@ -140,3 +140,11 @@ xss: swagger: # 是否开启swagger enabled: true + + +# ftp配置 +ftp: + server: ftp.example.com + port: 21 + user: ftpusername + password: ftppassword 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 new file mode 100644 index 000000000..9ccdbce34 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/FTPConfig.java @@ -0,0 +1,62 @@ +package com.ruoyi.common.config; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ConfigurationProperties(prefix = "ftp") +public class FTPConfig { + + /** + * 服务地址 + */ + private static String serverUrl; + + /** + * 端口 + */ + private static int port; + + /** + * 用户名 + */ + private static String userName; + + /** + * 密码 + */ + private static String password; + + + public static String getServerUrl() { + return serverUrl; + } + + public void setServerUrl(String serverUrl) { + this.serverUrl = serverUrl; + } + + public static int getPort() { + return port; + } + + public void setPort(int port) { + this.port = port; + } + + public static String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public static String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } +} \ No newline at end of file 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 new file mode 100644 index 000000000..be6c8b0f8 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FTPUtils.java @@ -0,0 +1,53 @@ +package com.ruoyi.common.utils.file; + +import com.ruoyi.common.config.FTPConfig; +import org.apache.commons.net.ftp.FTP; +import org.apache.commons.net.ftp.FTPClient; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.io.InputStream; + +public class FTPUtils { + + + public void uploadFile(String remotePath, MultipartFile file) throws IOException { + + FTPClient ftpClient = this.getConnection(); + + try { + + try (InputStream inputStream = file.getInputStream()) { + boolean done = ftpClient.storeFile(remotePath, inputStream); + if (done) { + System.out.println("File " + file.getOriginalFilename() + " has been uploaded successfully."); + } else { + throw new IOException("Failed to upload file " + file.getOriginalFilename()); + } + } + + } finally { + if (ftpClient.isConnected()) { + ftpClient.logout(); + ftpClient.disconnect(); + } + } + } + + + /** + * 建立连接 + */ + 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