2013-03-02 3 views
0

Я разрабатываю приложение для Android для подключения к FTP-серверу и загрузки видеофайлов, размещенных на FTP-сервере, и сохранения в папку на SD-карте. Для этого я использую библиотеку «org.apache.commons.net.ftp.FTPClient». Я могу подключиться к серверу и получить список имен файлов на сервере из своего приложения, но после загрузки видеофайлов они копируются в папку, которую я дал, и там размер указан как 10 байтов, и они не могут быть воспроизведены (Похож на испорченный). Может ли кто-нибудь предложить мне способ преодолеть эту проблему. Код, который я использовал, прилагается здесь.Загрузить видеофайл с FTP-сервера в Android

** Подключение к FTP-серверу **

public FTPClient mFTPClient = null; 

public boolean ftpConnect(String host, String username,String password, int port) 
{ 
    try { 
     mFTPClient = new FTPClient(); 
     mFTPClient.connect(host,port); 

     // now check the reply code, if positive mean connection success 
     if (FTPReply.isPositiveCompletion(mFTPClient.getReplyCode())) 
     { 
      // login using username & password 
      boolean status = mFTPClient.login(username, password); 

      mFTPClient.setFileType(FTP.BINARY_FILE_TYPE); 
      mFTPClient.enterLocalPassiveMode(); 

      return status; 
     } 
    } 
    catch(Exception e) 
    { 
     System.out.println("Error: could not connect to host " + host); 
     e.printStackTrace(); 
    } 

    return false; 
} 

Скачать файлы

public boolean ftpDownload(String srcFilePath, String desFilePath) 
{ 
    boolean status = false; 
    try { 
     FileOutputStream desFileStream = new FileOutputStream(desFilePath); 

     status = mFTPClient.retrieveFile(srcFilePath, desFileStream); 

     desFileStream.close(); 

     return status; 
    } catch (Exception e) { 
     System.out.println("download failed"); 
     e.printStackTrace(); 
    } 

    return status; 
} 

ответ

0

retrieveFile сделал дал мне проблемы тоже. Попробуйте использовать retrieveFileStream.