2011-12-30 107 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