1

Android アプリで次のコード スニペットを使用して、FTP 経由でファイルを転送しています。バイナリ ファイル モードが設定されたパッシブ モードを既に使用しています。現在、コードはそのままで、ファイル名は私の電話に存在するファイル用にハードコードされています。私は Wifi に接続し、上記のアドレスの FTP サーバーにファイルを転送したいと考えています。同じネットワーク上の別のマシンで動作するようにコードをテストしました。ADT-eclipse エミュレーターはこれに対して機能せず、Android 4.0 に更新された私の Xperia Ray ST18i は、接続時に有効なデバイスとして検出されません。commons-net-3.2.jar を ADT に正常にインポートし、携帯電話に .apk ファイルをコピーして、Wifi に接続しているときに確認しました。しかし、転送は機能していません。エミュレーターまたは電話でこれをデバッグするための指針を得ることができれば素晴らしいことです。ありがとう。

import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.commons.net.ftp.FTPClient;
public class test
{
  private static String server = "<valid-ip-address>";
  private static String username = "<valid-user>";
  private static String password = "password";
  private static String fileLocation = "<valid-file>";
  private static String fileName = "<valid-file>";


  public static void main(String[] args) throws Exception { 
    FTPClient f = new FTPClient();
    f.connect(server);
    f.login(username, password);
    f.enterLocalPassiveMode();
    f.setFileType(FTPClient.BINARY_FILE_TYPE);
    InputStream is = new FileInputStream(fileLocation); 
    f.storeFile(fileName, is);
    f.disconnect();
    is.close();
  }
}
4

1 に答える 1

1

-以前にこのコードをテストしたことがある場合、それは以前に機能していたことを意味しますが、チェック リストに記載する必要があるいくつかの問題にスポットライトを当てたいと思います。

-Internet Permissionマニフェストにがあることを確認します。

-あなたfile locationが正しいことを確認してください。

-プロジェクト パスに commons-ftp jar を追加しましたが、コンパイル エラーは発生しませんでした (これはばかげていることはわかっていますが、それでもチェックしてください)。

-またはを使用して、非 UI スレッドで ftp コードを呼び出していることを確認してください。ThreadHandlerAsyncTask

于 2013-06-07T11:45:13.870 に答える