javaで複数のファイルを同時にサーバーにアップロードする
バッチでサーバーにファイルをアップロードするには、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();
}
}
}
}
コード内で以下の変数の値を置換する必要があります:
- FTPサーバーのアドレス
- PORT:FTPサーバーのポート番号
- FTPログインユーザ名
- パスワード:FTPログインパスワード
- アップロードするファイルのあるローカルディレクトリへのパス
FTPクライアントのインスタンスが作成され、Connectメソッドを使用してFTPサーバーに接続します。その後、ログインメソッドを使用してログインが実行されます。次に、ファイル転送タイプがバイナリに設定され、ローカルの受動モードが開始されます。その後、listFilesメソッドを使用してローカルディレクトリ内のファイルのリストを取得します。各ファイルに対して、storeFileメソッドを使用してファイルをサーバーにアップロードし、closeメソッドを使用してファイルストリームが閉じられます。最後に、ログアウトメソッドを使用してログアウトが実行され、サーバーとの接続が切断されます。