diff --git a/pom.xml b/pom.xml index 61994cff1..2d58464ea 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.8 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 0dc885f68..de9432459 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..70b7c8d99 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/FTPConfig.java @@ -0,0 +1,47 @@ +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 String server; + private int port; + private String user; + private String password; + + // Getters and Setters + public String getServer() { + return server; + } + + public void setServer(String server) { + this.server = server; + } + + public int getPort() { + return port; + } + + public void setPort(int port) { + this.port = port; + } + + public String getUser() { + return user; + } + + public void setUser(String user) { + this.user = user; + } + + public 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..f0042a563 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FTPUtils.java @@ -0,0 +1,37 @@ +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 = new FTPClient(); + FTPConfig ftpConfig = new FTPConfig(); + 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); + 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(); + } + } + } +} \ No newline at end of file