2011-07-19 38 views
5

İndirme Burada FTP Upload ve Android'de

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; 
    } 
} 

i test ettik başka bir kod parçasıdır ve hala o istisna

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; 
}  
almak ... ben INTERNET_ACCESS set vb sonra bu hatayı alıyorum

}

+0

FTP URL formatının doğru olmadığını düşündüm, bir kez kontrol edin – sunriser

+0

Sorununuzun stacktrace'ini göndermelisiniz. Fakat FtpClient'inize bozuk bir bağlantı dizesi vermişsiniz gibi görünüyor. –

+0

Her çeşit varyantı test ettim, lütfen bana yardımcı olabilir misiniz? – IamStalker

cevap

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 

BilinmeyenHostException aldığınız gerçeği, ftp.194.90.81.149'un DNS'de gerçek bir ana bilgisayar adı olmadığı anlamına gelir. Bunun sayısal kısmının gerçekten istediğin şey olduğundan şüphelenirim. Yani, ya internet izni eksik veya internete bağlı olmayan Ya da ftp url yanlış olabilir

con.connect("194.90.81.149"); 
+0

Bu varyantı test ettim ve hala sonuç yok. Her şeyi doğru yapıp yapmadığımı nasıl anlarım? – IamStalker

+0

Yeni bir hata mı alıyorsunuz? –

+0

Ohh Don ilk önce yardımlarınız için çok teşekkür ederim, Ve ben java.net ... aldım hatası aldım.UnkownHostException .... belki ben size uygulamayı göndereceğim ve ne olduğumu bakabilirsiniz yanlış mı yapıyorsun? – IamStalker

0

Bilinmeyen konak istisna o çizgiyi demektir değiştirmeyi deneyin.

+0

Bu kendini ima ediyor. – IamStalker

+0

Sorununuz çözüldü mü? – sandy

+0

Bazı videoları ftp locaton'dan almak zorundayım ve bağlantım ftp.xx.xx yerine "ftp: ///xx.xx.xx" gibi görünüyor. – sandy