2017-01-08 165 views
1

我想上傳目錄到我的FTP服務器。上傳目錄到FTP(Android)

這是我用來上傳一個「單個文件」到我的ftp服務器的代碼,我想知道是否有什麼東西可以幫助我將這個文件夾中的所有圖片「.jpg」上傳到「mnt/sdcard/DCIM /相機「到我的FTP。

public static final String TAG = "Contacts"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Thread t = new Thread(new Runnable(){ 
     @Override 
     public void run(){ 
      jetzt(); 
     } 
    }); 
    t.start(); 
    Log.i(TAG, "thread started"); 

} 

public void jetzt(){ 
    FTPClient ftpClient = new FTPClient(); 
    try { 
     ftpClient.connect("HOST SERVER IP"); 

     ftpClient.setSoTimeout(10000); 
     ftpClient.enterLocalPassiveMode(); 
     if(ftpClient.login(" LOGIN ", " PASSWORD ")) 
     { 
      ftpClient.setFileType(FTP.BINARY_FILE_TYPE); 
      ftpClient.setFileTransferMode(FTP.BINARY_FILE_TYPE); 
      File sFile=new File("mnt/sdcard/DCIM/Camera/mypicture.jpg"); 
      FileInputStream fs= new FileInputStream(sFile); 
      String fileName = sFile.getName(); 
      Boolean result = ftpClient.storeFile(fileName, fs); 
      fs.close(); 
      Log.i(TAG, "sent"); 
      String has = ""; 
     } 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

}

回答

2

您可以使用此功能修改:

public void jetzt() { 
    FTPClient ftpClient = new FTPClient(); 
    try { 
     ftpClient.connect("HOST SERVER IP"); 

     ftpClient.setSoTimeout(10000); 
     ftpClient.enterLocalPassiveMode(); 
     if (ftpClient.login(" LOGIN ", " PASSWORD ")) { 
      ftpClient.setFileType(FTP.BINARY_FILE_TYPE); 
      ftpClient.setFileTransferMode(FTP.BINARY_FILE_TYPE); 

      final File folder = new File("mnt/sdcard/DCIM/Camera"); 

      for (final File fileEntry : folder.listFiles()) { 
       try { 
        FileInputStream fs = new FileInputStream(fileEntry); 
        if (!fileEntry.isDirectory()) { 
         String fileName = fileEntry.getName(); 
         ftpClient.storeFile(fileName, fs); 
         fs.close(); 
         Log.i(TAG, "sent"); 
        } 
       } catch (Exception e) { 
        Log.i(TAG, "error uploading"); 
       } 
      } 
     } 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 
+1

輝煌! 我祈禱上帝照顧你和你的孩子。 –

0

有沒有功能上傳整個目錄中的FTPClient class

你必須:

+0

謝謝您的回答馬丁。你可以修改我的代碼,因爲我在java中的級別非常低。 –

+0

查看其他答案 – ashubuntu

+0

感謝您的幫助馬丁,上帝保佑您。 –