2013-04-05 104 views
0

服務器我經歷了許多討論了有關從FTP上傳文件server.I認爲有2種方式來連接和上傳:如何連接到FTP從Android的

1:我必須使用Apache庫,並使用它的類像ftpclient。

2:像這樣的代碼的URLConnection:

public void getFile(URL u) throws IOException { 
     // url de type "http://www.monsite.com/monrep/mavideo.wmv" 
     String FileName = u.getFile(); 
     FileName = FileName.substring(FileName.lastIndexOf('/') + 1); 
     URLConnection uc = u.openConnection(); 
     int FileLenght = uc.getContentLength(); 
     if (FileLenght == -1) { 
      monView2.setText("Fichier non valide:"+ FileName); 
     } 

     try 
     { 
      InputStream myInput = uc.getInputStream(); 
      String outFileName = "/sdcard/GPTO/"+ NomParcours + "/" + FileName; 
      FileOutputStream myOutPut = new FileOutputStream(outFileName); 
      byte[]buff = new byte[1024]; 
      int l = myInput.read(buff); 

      while(l>0) 
      { 
       myOutPut.write(buff, 0, l); 
       l = myInput.read(buff); 
      } 
      myOutPut.flush(); 
      myOutPut.close(); 
     } 
     catch(Exception e) 
     { 
     monView2.setText(e.toString()); 
     } 
} 

請直接與我在正確的道路,我在Android的初學者,我知道剛纔基礎知識,什麼是達到同樣的路嗎?

+0

不硬編碼sdcard路徑'String outFileName =「/ sdcard'。使用'Environment'類獲取有效路徑 – 2013-04-05 08:23:30

回答

0
ftpClient.connect(InetAddress.getByName(server)); 
ftpClient.login(user, password); 
ftpClient.changeWorkingDirectory(serverRoad); 
ftpClient.setFileType(FTP.BINARY_FILE_TYPE); 
BufferedInputStream buffIn=null; 
buffIn=new BufferedInputStream(new FileInputStream(file)); 
ftpClient.enterLocalPassiveMode(); 
ftpClient.storeFile("mysampletext.txt", buffIn); 
buffIn.close(); 
ftpClient.logout(); 
ftpClient.disconnect(); 

導入ftp庫後使用此代碼。 link

+0

hy Arun C Thomas,我用你的例子但是方法ftpclient.login()返回false爲什麼? – 2013-04-17 09:10:48