2011-12-30 121 views
0

我在Windows 7中工作,我正在學習Android的代碼。Android FTP客戶端應用程序 - 如何登錄到FTP服務器,可以使用什麼FTP服務器?

我需要創建一個FTP客戶端來上傳和下載免費FTP服務器上的文件。我使用「www.drivehq.com」,這是一個免費的ftp空間。我需要知道我是否可以將這種可用空間用作我的FTP服務器,或者如果不可以,可以使用哪種FTP服務器?

我寫了下面的代碼登錄到FTP服務器,以及上傳文件。它不顯示任何錯誤,但我無法從模擬器(android 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("http://www.ftpserver.com"); 

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

當我運行這一點,打印 「登錄成功」,這意味着,我已經登錄,不是嗎?但文件沒有上傳。

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

這個測試數據是什麼? 「con.storefile」 - 在括號內我需要填寫什麼?是否需要上傳源文件的目標位置或路徑。

如果它是源文件的路徑,我有我的數據在SD卡中,我虛擬創建了我的模擬器,使用DDMS的角度來看我加載了SD卡中的文件,我如何表示該文件的路徑,如果它是目標位置,我是否需要包含目錄的URL?

+0

我不明白你的問題,如果有任何。你說你可以登錄和上傳,然後你問「我可以登錄並上傳文件嗎?我需要做什麼?」 。有人關閉這個問題 – 2011-12-30 10:15:35

+0

我試着登錄代碼,但我無法登錄和上傳文件。在運行應用程序時,我輸入了用戶名和密碼,然後顯示「應用程序意外關閉」。我的目標是將文件從SDCard傳輸到遠程FTP服務器,通過利用免費的FTP服務器提供移動用戶擁有無限內存的錯覺,我以爲使用「http://www.drivehq.com」。我可以使用這個FTP服務器嗎?或者我應該去別的嗎?如果你知道任何事情,你能建議我嗎? – VSK 2012-01-01 16:42:11

+0

你有例外嗎? – 2012-01-01 17:58:39

回答

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 2012-01-05 06:52:57