Клиентское приложение FTP для Android — как войти на FTP-сервер, какой FTP-сервер можно использовать?

Я работаю в Windows 7 и учусь программировать для Android.

Мне нужно создать 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-адрес каталога?


person VSK    schedule 30.12.2011    source источник
comment
Я не понял вашего вопроса, если он есть. Вы говорите, что можете войти и загрузить, а затем спрашиваете, могу ли я войти и загрузить файл? что мне нужно сделать?? . Кто-нибудь закройте этот вопрос   -  person Adel Boutros    schedule 30.12.2011
comment
я пробовал этот код для входа в систему, но я не мог войти и загрузить файлы. при запуске приложения я ввел имя пользователя и пароль, после чего приложение неожиданно закрылось. моя цель - передать файлы с SDCard на удаленный FTP-сервер, чтобы создать иллюзию того, что мобильный пользователь имеет бесконечную память, используя бесплатные FTP-серверы, я подумал использовать drivehq.com. Могу ли я использовать этот FTP-сервер? или мне пойти за кем-то другим?, если вы что-нибудь знаете, можете ли вы предложить мне.   -  person VSK    schedule 01.01.2012
comment
вы получаете исключение?   -  person Adel Boutros    schedule 01.01.2012
comment
FTPClient con = новый FTPClient(); попробуйте { con.connect(ftp.drivehq.com); if (con.login(sasikala.viji1987, viji.sasi)) { lblResult.setText(Вход выполнен успешно.);   -  person VSK    schedule 02.01.2012
comment
пожалуйста, просмотрите мой обновленный вопрос...   -  person VSK    schedule 02.01.2012


Ответы (1)


Вы можете проверить эту ссылку 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
person Adel Boutros    schedule 02.01.2012
comment
спасибо... я зашел на FTP-сервер и загрузил свой файл, я использовал другой код, [androiddev.orkitra.com/?p=28] этот код очень полезен.... - person VSK; 05.01.2012