2011-12-30 29 views
0

私はWindows 7で作業しています。Android用のコードを学習しています。Android FTPクライアントアプリケーション - FTPサーバーにログインするには、どのようなFTPサーバーを使用できますか?

無料のFTPサーバーからファイルをアップロードしてダウンロードするには、FTPクライアントを作成する必要があります。私は無料のftpスペースである "www.drivehq.com"を使用しています。私は私のFTPサーバーとしてこの種の空き領域を使用できるか、そうでない場合はどのFTPサーバーを使用できるかを知る必要があります。

私は、FTPサーバーにログインしてファイルをアップロードするために、次のコードを書いています。エラーは表示されませんが、ログインが成功したかどうかはエミュレータ(アンドロイド2.2)から確認できませんでした。ファイルはアップロードされません。私は、FTPサーバーのログインアカウントを使用してウェブサイトから別途チェックされています。

さらに進めるべきですか?ログインに成功してファイルをアップロードするにはどうすればよいですか?

FTPClient con = new FTPClient(); 
try 
{ 
    con.connect("http://www.ftpserver.com"); 
    if (con.login("user name", "password")) 
    { 
     con.enterLocalPassiveMode(); // important! 
     String data = "test data"; 
     ByteArrayInputStream in = new ByteArrayInputStream(data.getBytes()); 
     boolean result = con.storeFile("/sdcard/abc.jpg", in); 
     in.close(); 
     if (result) Log.v("upload result", "succeeded"); 
     //lblResult.setText("Login successful."); 
    } 
} 
catch (Exception e) 
{ 
     e.printStackTrace(); 
} 


try 
{ 
     con.logout(); 
     con.disconnect(); 
} 
     catch (IOException e) 
     { 
     e.printStackTrace(); 
     } 
     lblResult.setText("Login successful."); 
     else { 
       lblResult.setText("Login failed. Username and/or password doesn't match."); 
      } 
     } 
     }); 

私はすべての例外を取得していますかどうか、知りません。

FTPClient con = new FTPClient(); 
    try 
     { 
      con.connect("FTPserver"); 
      if (con.login("username", "password")) 
         { 
      lblResult.setText("Login successful."); 
      con.enterLocalPassiveMode(); 

私は

con.connect("ftp.ftpserver.com"); 

con.connect("http://www.ftpserver.com"); 

を変更した私は、それは "成功したログイン" を印刷し、これを実行すると、それは、私がログインしていること、それはないですか?ファイルはアップロードされていません。

String data = "test data"; 
    ByteArrayInputStream in = new ByteArrayInputStream(data.getBytes()); 
    boolean result = con.storeFile("/text.txt", in); 

このテストデータは何ですか? "con.storefile" - 角括弧の中に何を記入する必要がありますか?ソースファイルの宛先の場所またはパスをアップロードする必要があるかどうか。

ソースファイルのパスであれば、私は自分のエミュレータ用に作成したsdcardのデータをDDMSパースペクティブを使ってsdcardにロードしました。どのようにしてそのファイルのパスを表すことができますか?宛先の場所の場合は、ディレクトリのURLを含める必要がありますか?

+0

いずれかが存在する場合、私はあなたの質問を理解していませんでした。あなたはログインしてアップロードすることができますし、 "あなたはログインしてファイルをアップロードできますか?私は何をする必要がありますか?" 。誰かがこの質問を閉じる –

+0

私はそのコードをログインしようとしましたが、私はログインしてファイルをアップロードできませんでした。アプリケーションの実行中にユーザー名とパスワードを入力すると、「アプリケーションが突然終了しました」と表示されます。私の目的は、SDCardからリモートFTPサーバーにファイルを転送して、モバイルユーザーが無償のFTPサーバーを利用して無限の記憶を持つという錯覚を提供することです。私は「http://www.drivehq.com」を使用すると考えました。私はこのFTPサーバーを使用できますか?私は何かを知っているなら、私に示唆することができます。 – VSK

+0

例外がありますか? –

答えて

0

このリンクhttp://www.javaworld.com/javaworld/jw-04-2003/jw-0404-ftp.htmlをチェックすることができます。

それは言う:

URL url = new URL("ftp://user01:[email protected]/README.txt;type=i"); 
URLConnection urlc = url.openConnection(); 
InputStream is = urlc.getInputStream(); // To download 
OutputStream os = urlc.getOutputStream(); // To upload 
+0

ありがとう...私はFTPサーバーにログインし、私のファイルをアップロード、私は別のコードを使用して、[http://androiddev.orkitra.com/?p=28]このコードは非常に便利です.... – VSK

関連する問題