2

FTPサーバーに接続してファイルをアップロードおよびダウンロードするAndroid上のアプリケーションを開発しています。接続を確立するために、これに基づいてapache commons-netライブラリのFTPClientクラスを使用しており、Eclipseで作業しています。

しかし、Logcatに次のメッセージが表示されます。

07-04 21:11:44.196: D/USB Virtual(14708): Error: could not connect to host ftp://xxx.xxx

以下は私のマニフェスト権限です。

<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>

FTPサーバーに接続できない理由がわからなくなってしまいました。コンソールでは、エラーは表示されません。私は何かが足りないのですか?私はどんな助けにも感謝します。

FTPサーバーへの接続に使用しているコードを追加しています。

public boolean ftpConnect(String host, String username, String password,
        int port) {
    try {
        mFTPClient = new FTPClient();
                    //host is ftp://looner-project.zxq.net
        mFTPClient.connect(host);
        mFTPClient.connect(InetAddress.getByName(host));


        if (FTPReply.isPositiveCompletion(mFTPClient.getReplyCode())) {

            boolean status = mFTPClient.login(username, password);
            mFTPClient.setFileType(FTP.BINARY_FILE_TYPE);
            mFTPClient.enterLocalPassiveMode();

            return status;
        }
    } catch (Exception e) {
        Log.d(TAG, "Error: could not connect to host " + host);
    }

    return false;
}
4

1 に答える 1

0

確認事項...

1.インターネット接続を確認してください。

2. ftp サイトの URL を正しく指定していますか??

3.パスワードが保護されている場合、正しく入力していますか??

4.コマンド プロンプトを使用して確認します。以下のコマンドを実行して確認してください。

ftp www.your_ftp_site.com

上記のコマンドの後、ユーザー名とパスワードの入力を求められます。

明確にするために、オーディオファイルをサーバーにアップロードするために使用したコードも添付しています...

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.IOException;

    import org.apache.commons.net.ftp.FTP;

    import org.apache.commons.net.ftp.FTPClient;

    import android.util.Log;



    public class MyOwn {

        public void goforIt(){


            FTPClient con = null;

            try
            {
                con = new FTPClient();
                con.connect("www.mysamle.net");                 // Its dummy Address

                if (con.login("uju495", "Stevejobs!!"))
                {
                    con.enterLocalPassiveMode();                   // Very Important

                    con.setFileType(FTP.BINARY_FILE_TYPE);        //  Very Important
                    String data = "/sdcard/Vivekm4a.m4a";

                    FileInputStream in = new FileInputStream(new File(data));
                    boolean result = con.storeFile("/Ads/Vivekm4a.m4a", in);
                    in.close();
                    if (result) Log.v("upload result", "succeeded");
                    con.logout();
                    con.disconnect();
                }
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }   
        }

    }
于 2012-07-05T02:53:53.880 に答える