springboot ftp文件批量上传
时间: 2023-11-21 11:55:49 浏览: 105
以下是使用Spring Boot实现FTP文件批量上传的代码:
```java
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
@Component
public class FtpUtil {
@Value("${ftp.host}")
private String host;
@Value("${ftp.port}")
private int port;
@Value("${ftp.username}")
private String username;
@Value("${ftp.password}")
private String password;
@Value("${ftp.basePath}")
private String basePath;
@Value("${ftp.fileUrl}")
private String fileUrl;
public boolean uploadFile(MultipartFile[] files) {
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect(host, port);
ftpClient.login(username, password);
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
ftpClient.changeWorkingDirectory(basePath);
for (MultipartFile file : files) {
String fileName = file.getOriginalFilename();
InputStream inputStream = file.getInputStream();
ftpClient.storeFile(fileName, inputStream);
inputStream.close();
}
ftpClient.logout();
return true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftpClient.isConnected()) {
try {
ftpClient.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return false;
}
}
```
其中,`@Value`注解用于获取配置文件中的FTP连接信息和文件路径信息。`uploadFile`方法接收一个`MultipartFile`类型的数组,遍历数组中的文件,使用FTPClient上传文件到FTP服务器上。
阅读全文