要批量上传文件到服务器,可以使用Java中的FTP客户端库来实现。以下是一个使用Apache Commons Net库的示例代码:
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class FTPUploader {
private static final String SERVER = "ftp.example.com";
private static final int PORT = 21;
private static final String USERNAME = "username";
private static final String PASSWORD = "password";
public static void main(String[] args) {
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect(SERVER, PORT);
ftpClient.login(USERNAME, PASSWORD);
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
ftpClient.enterLocalPassiveMode();
File directory = new File("path/to/directory");
File[] files = directory.listFiles();
if (files != null) {
for (File file : files) {
if (file.isFile()) {
String remoteFile = file.getName();
FileInputStream inputStream = new FileInputStream(file);
ftpClient.storeFile(remoteFile, inputStream);
inputStream.close();
System.out.println("Uploaded file: " + remoteFile);
}
}
}
ftpClient.logout();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
ftpClient.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
在代码中,需要替换以下变量的值:
- `SERVER`:FTP服务器地址
- `PORT`:FTP服务器端口号
- `USERNAME`:FTP登录用户名
- `PASSWORD`:FTP登录密码
- `"path/to/directory"`:要上传的文件所在的本地目录路径
代码首先创建一个FTPClient实例,并使用`connect`方法连接到FTP服务器。然后使用`login`方法进行登录。接下来,设置文件传输类型为二进制,并进入本地被动模式。然后,通过`listFiles`方法获取本地目录中的文件列表。对于每个文件,使用`storeFile`方法将文件上传到服务器,并使用`close`方法关闭文件流。最后,使用`logout`方法登出并断开与服务器的连接。