# FTP, Datei Hochladen



## Dit_ (2. Mrz 2010)

Hallo!

Ich muss in meinem FTP Programm eine Methode schreiben die verschiedene Dateien auf FTP hochladen kann. Verbinden, Einlogen, DateiLöschen und umbenennen funktioniert soweit ohne Probleme...
Wie geht das mit Upload? Hat jem eine Anleitung oder BeispielCode ?

Danke schon mal.

P.S. ich weiss dass es fertige APIs von Apach und Co gibt...


----------



## HoaX (2. Mrz 2010)

Was is da jetz das konkrete Problem? Wie hast dus probiert?

Wenn dir allgemeine Infos zu FTP fehlen dann schau doch mal ins entsprechende RFC, da steht alles genau drin.


----------



## FArt (3. Mrz 2010)

> ich weiss dass es fertige APIs von Apach und Co gibt...


1. wichtig: Nimm sie her!
2. (nicht so wichtig): das IST der Beispielcode.


----------



## Dit_ (3. Mrz 2010)

FArt hat gesagt.:


> 1. wichtig: Nimm sie her!
> 2. (nicht so wichtig): das IST der Beispielcode.



Ok nochmal...

die fertigen APIs sind zu kompliziert (zu professionell) gebaut und die Methode "upload" zB bei Apache braucht noch 4-5 andere Klassen und unzählige Hilfsmethoden, so dass ich Algorithmus nicht nachvollziehen kann...

Mir geht es nur um verständnis. Was man alles schrittweise in JAVA machen muss.


----------



## Jens81 (3. Mrz 2010)

Mit Apache gehts ganz einfach...


```
FTPClient client = new FTPClient();
				
try {
  client.connect(host); //Host
  client.login("user", "pass");
} catch (Exception conn_err) {
  conn_err.printStackTrace();
}

try {
  client.setFileType(FTP.BINARY_FILE_TYPE);
  OutputStream out = client.storeFileStream(programmpfad); //Pfad zur Datei
				    
  InputStream input = null;
  try {
    input = new ByteArrayInputStream(inhalt.getBytes("UTF-8")); //String inhalt wird gelesen
  } catch (Exception encode_err) {
    encode_err.printStackTrace();
  }
				    
  Util.copyStream(input, out);
  input.close();
  out.close();
  client.completePendingCommand();
  client.sendSiteCommand("chmod 770 " + programmpfadundname); //Setzt Schreibrechte für alle User einer Gruppe
} catch (Exception file_err) {
  file_err.printStackTrace();
}

try {
  client.logout();
  client.disconnect();
} catch (Exception disconn_err) {
  disconn_err.printStackTrace();
}
```

Ich hoffe das hilft dir weiter.

Gruß, Jens


----------

