

AndroidでApache commons netを使用してFTPサーバーにテキストファイルをアップロードするプログラムを作りたいのですがReply
Code 500が返されてできません。  
以下がそのプログラムです(実際はAsyncTaskの中に入っています)。

[code]

        private class FTP extends ContextWrapper{
    
        public FTP(Context context) {
            super(context);
        }
    
        private String putData{
            int reply = 0;
            boolean isLogin = false;
            FTPClient FTPCl = new FTPClient();
    
            try {
                FTPCl.setConnectTimeout(5000);
                FTPCl.connect("*****.*****.jp",21);
                reply = FTPCl.getReplyCode();
                if (!FTPReply.isPositiveCompletion(reply)) {
                    throw new Exception("Connect Status:" + String.valueOf(reply));
                }
    
                if (!FTPCl.login(<ユーザーID>, <パスワード>)) {
                    throw new Exception("Invalid user/password");
                }
                isLogin = true;
    
                FTPCl.enterLocalActiveMode();
    
                FTPCl.setDataTimeout(15000);
                FTPCl.setSoTimeout(15000);
                FileInputStream fileInputStream = this.openFileInput("hoge.txt");
    
                FTPCl.storeFile("files/", fileInputStream);
                reply = FTPCl.getReplyCode();
                if (!FTPReply.isPositiveCompletion(reply)) {
                    throw new Exception("Send Status:" + String.valueOf(reply));
                }
                fileInputStream.close();
    
    
                FTPCl.logout();
                isLogin = false;
    
                FTPCl.disconnect();
            } catch(Exception e) {
                return e.getMessage();
            } finally {
                if (isLogin) {
                    try {
                        FTPCl.logout();
                    } catch (IOException e) {
    
                    }
                }
                if (FTPCl.isConnected()) {
                    try {
                        FTPCl.disconnect();
                    } catch (IOException e) {
    
                    }
                }
                FTPCl = null;
            }
            return null;
        }
    
    }
    
[/code]


CC BY-SA 3.0
2016-08-05T03:19:01.810
28077
2016-11-17T02:59:15.093
question
android java
Apache commonsのライブラリを使ってFTPサーバーにアップロードしたいができない


ドキュメントによると、  
`FTPCl.storeFile`の第一引数はディレクトリではなくファイル名のようです。  
[storeFile(java.lang.String,
java.io.InputStream)](https://commons.apache.org/proper/commons-
net/apidocs/org/apache/commons/net/ftp/FTPClient.html#storeFile\(java.lang.String,%20java.io.InputStream\))

Workingディレクトリを変更するメソッドが用意されています。  
[changeWorkingDirectory(java.lang.String)](https://commons.apache.org/proper/commons-
net/apidocs/org/apache/commons/net/ftp/FTPClient.html#changeWorkingDirectory\(java.lang.String\))

[こちらの回答](https://stackoverflow.com/a/1651337/5183999)が参考になるかもしれません。


CC BY-SA 3.0
2016-08-07T08:35:13.553
28103
2016-08-07T08:35:13.553
2017-05-23T12:38:55.307
-1
15228
28077
answer