FTPのプログラム2
FTPのGETプログラムに続いて、
org.apache.commons.net.ftp.FTPClientを使用したFTPのPUTプログラム。
下記は既存のファイルをPUTするメソッド put() です。
import java.io.FileInputStream; import java.io.InputStream; import java.io.IOException; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTP; public class FtpTest{ ... ... ... // IPアドレス private String ipAddr; // パッシブモード有効フラグ private boolean passiveMode; public FtpComm(String ipAddr){ this.ipAddr = ipAddr; } public void setPassiveMode(boolean passiveMode){ this.passiveMode = passiveMode; } ... ... ... /** * 指定ファイルをputする。 * @param loginName FTPログイン名 * @param password FTPパスワード * @param workDir ファイルがあるディレクトリ * @param fileName ファイル名 * @return 結果 true 成功/false 失敗 */ public boolean put( String loginName, String password, String workDir, String fileName ){ boolean result = false; InputStream in = null; FTPClient ftp = new FTPClient(); try{ // 接続 ftp.connect( ipAddr ); // ログイン ftp.login( loginName, password ); // ファイルタイプの指定 ftp.setFileType( FTP.BINARY_FILE_TYPE ); // FTPパッシブモード指定 if( passiveMode ) ftp.enterLocalPassiveMode(); in = new FileInputStream( workDir + fileName ); // 書き込みファイルの、FTPによるPUT result = ftp.storeFile( fileName, in ); }catch( IOException ex ){ ex.printStackTrace(); }finally { if( in != null ){ try { in.close(); }catch( IOException ex ){} } if( ftp != null ){ try { if( ftp.isConnected() ){ ftp.logout(); ftp.disconnect(); } }catch( Exception nop ){ } ftp = null; } } return result; } ... ... }
動作的にはOKでした。
(一応動作はOKでしたが、保証はしませんので責任は一切持ちません。使用する場合は、使用する方の責任において、ご使用下さい。他に記述されているすべてのサンプルコードも同様です。)