2011-07-19 13 views
5

ottengo questo errore dopo aver impostato INTERNET_ACCESS ed ecc ...FTP Upload e download su Android

private class AsyncUpload extends AsyncTask<String, Void, Void>{  
    public void ftpUpload(){ 
     FTPClient con = new FTPClient(); 
     try 
     { 

      con.connect("ftp.194.90.81.149"); //here i recieve exception 
       //the exception is java.unknownhostexception 
       //java.net.UnknownHostException: Unable to resolve host "ftp.194.90.81.149": No address associated with hostname 
      if (con.login("username", "password")) 
      { 
       con.enterLocalPassiveMode(); 
       String data = "test data"; 
       ByteArrayInputStream in = new ByteArrayInputStream(data.getBytes()); 
       boolean result = con.storeFile("/test.jpg", in); 
       in.close(); 
       if (result) Log.v("upload result", "succeeded"); 
      } 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 


     try 
     { 
      con.logout(); 
      con.disconnect(); 
     } 
     catch (IOException e) 
     { 
      e.printStackTrace(); 
     } 
    } 

    @Override 
    protected Void doInBackground(String... params) { 
     ftpUpload(); 
     return null; 
    } 
} 

qui è un'altra parte del codice che ho testato e continuare a ricevere tale eccezione

public class FTPFactory { 
private FTPClient _ftpClient = null; 

public boolean Connect(String host, String userName, String password, int port) throws IOException 
{ 
    try { 

     _ftpClient = new FTPClient(); 

     // connecting to the host   
     _ftpClient.connect(host, port); 

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

    } catch(IOException e) { 
     throw e; 
    }  
    return false; 
} 

public boolean Disconnect() 
{ 
    try { 
     _ftpClient.logout(); 
     _ftpClient.disconnect(); 
     return true; 
    } catch (Exception e) { 

    } 

    return false; 
} 

public boolean ChangeDirectory(String directoryPath) 
{ 
    try { 
     _ftpClient.changeWorkingDirectory(directoryPath); 
    } catch(Exception e) { 

    } 

    return false; 
} 


public String GetCurrentWorkingDirectory() 
{ 
    try { 
     String workingDir = _ftpClient.printWorkingDirectory(); 
     return workingDir; 
    } catch(Exception e) { 

    } 

    return null; 
} 

public void PrintFilesList(String dirPath) 
{ 
    try { 
     FTPFile[] ftpFiles = _ftpClient.listFiles(dirPath); 
     int length = ftpFiles.length; 

     for (int i = 0; i < length; i++) { 
      String name = ftpFiles[i].getName(); 
      boolean isFile = ftpFiles[i].isFile(); 

      if (isFile) { 

      } 
      else { 

      } 
     } 
    } catch(Exception e) { 
     e.printStackTrace(); 
    } 
} 

public boolean MakeDirectory(String newDirPath) 
{ 
    try { 
     boolean status = _ftpClient.makeDirectory(newDirPath); 
     return status; 
    } catch(Exception e) { 

    } 
    return false; 
} 


public boolean RemoveDirectory(String dirPath) 
{ 
    try { 
     boolean status = _ftpClient.removeDirectory(dirPath); 
     return status; 
    } catch(Exception e) { 

    } 
    return false; 
} 

public boolean RemoveFile(String filePath) 
{ 
    try { 
     boolean status = _ftpClient.deleteFile(filePath); 
     return status; 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return false; 
} 

public boolean RenameFile(String from, String to) 
{ 
    try { 
     boolean status = _ftpClient.rename(from, to); 
     return status; 
    } catch (Exception e) { 

    } 
    return false; 
} 


/** 
* mFTPClient: FTP client connection object (see FTP connection example) 
* srcFilePath: path to the source file in FTP server 
* desFilePath: path to the destination file to be saved in sdcard 
*/ 
public boolean Download(String srcFilePath, String desFilePath) 
{ 
    boolean status = false; 
    try { 
     FileOutputStream desFileStream = new FileOutputStream(desFilePath);; 
     status = _ftpClient.retrieveFile(srcFilePath, desFileStream); 
     desFileStream.close(); 

     return status; 
    } catch (Exception e) { 

    } 

    return status; 
} 

/** 
* mFTPClient: FTP client connection object (see FTP connection example) 
* srcFilePath: source file path in sdcard 
* desFileName: file name to be stored in FTP server 
* desDirectory: directory path where the file should be upload to 
*/ 
public boolean Upload(String srcFilePath, String desFileName, String desDirectory) 
{ 
    boolean status = false; 
    try { 
     FileInputStream srcFileStream = new FileInputStream(srcFilePath); 

     // change working directory to the destination directory 
     if (ChangeDirectory(desDirectory)) { 
      status = _ftpClient.storeFile(desFileName, srcFileStream); 
     } 

     srcFileStream.close(); 
     return status; 
    } catch (Exception e) { 

    } 

    return status; 
}  

}

+0

Pensavo che il formato dell'URL dell'FTP non fosse corretto, controllalo una volta – sunriser

+0

Dovresti pubblicare lo stacktrace del tuo problema. Ma sembra che tu abbia dato una brutta stringa di connessione al tuo FtpClient. –

+0

Ho provato ogni variante possibile mi potete aiutare per favore? – IamStalker

risposta

7
 con.connect("ftp.194.90.81.149"); //here i recieve exception 
      //the exception is java.unknownhostexception 
      //java.net.UnknownHostException: Unable to resolve host "ftp.194.90.81.149": No address associated with hostname 

Il fatto che tu stia ricevendo una UnknownHostException significa che ftp.194.90.81.149 non è un vero nome host in DNS. Sospetto che la parte numerica di ciò sia ciò che vuoi veramente. Vale a dire, provare a cambiare quella linea di

con.connect("194.90.81.149"); 
+0

Ho provato questa variante e ancora nessun risultato. Come posso sapere se sto facendo tutto giusto? – IamStalker

+0

Hai un nuovo errore? –

+0

Ohh Don prima di tutto ti ringrazio molto per il tuo aiuto, E per l'errore, ricevo il java.net ... .UnkownHostException .... forse ti invierò l'applicazione e potrai vedere cosa sono fare male? – IamStalker

0

eccezione Unknown host significa o non trovi il consenso internet o non si è connessi ad internet o possono essere l'URL ftp è sbagliato.

+0

Questo è implicito da se stessi. – IamStalker

+0

Il problema è stato risolto? – sandy

+0

Devo recuperare alcuni video da ftp locaton e il mio collegamento sembra "ftp: ///xx.xx.xx" piuttosto che ftp.xx.xx. – sandy