Hi,
ich bin gerade dabei eine Klasse zu schreiben welche mehrere Dateien von einem FTP Server runterlädt.
Für den Download vom FTP hab ich eine Methode geschrieben der als Parameter eine Zieldatei und eine Quelldatei (die Datei auf dem Server) übergeben werden.
Wenn ich jetzt die Methode 'download' zum ersten mal aufrufe wird die erste Datei korrekt heruntergeladen.
ABER sobald ich die Methode ein zweites mal aufrufe schlägt der Download fehl. Ich bekomme dann vom ftp
den Code 226 (closing data connection) oder 500 (syntax error).
Ich nehme mal an, dass es etwas damit zu tun hat, dass der Passive Mode beim ersten Download nicht korrekt beendet wird und ich einfach nach beendigung des Downloads noch ein bestimmtes Commando eingeben muss damit der FTP wieder auf das Commando PASV richtig reagiert.
Allerdings bin ich was ftp angeht ein absoluter neuling und komme einfach nicht drauf wo der Fehler liegen könnte. Ich würde mich freuen wenn jemand von euch der da ein bisschen mehr Erfahrung in der richtung hat mir einen kleinen Tipp geben könnte.
Hier erstmal die Methode 'download'
Vielen Dank im voraus
Gruß
Paladin
ich bin gerade dabei eine Klasse zu schreiben welche mehrere Dateien von einem FTP Server runterlädt.
Für den Download vom FTP hab ich eine Methode geschrieben der als Parameter eine Zieldatei und eine Quelldatei (die Datei auf dem Server) übergeben werden.
Wenn ich jetzt die Methode 'download' zum ersten mal aufrufe wird die erste Datei korrekt heruntergeladen.
ABER sobald ich die Methode ein zweites mal aufrufe schlägt der Download fehl. Ich bekomme dann vom ftp
den Code 226 (closing data connection) oder 500 (syntax error).
Ich nehme mal an, dass es etwas damit zu tun hat, dass der Passive Mode beim ersten Download nicht korrekt beendet wird und ich einfach nach beendigung des Downloads noch ein bestimmtes Commando eingeben muss damit der FTP wieder auf das Commando PASV richtig reagiert.
Allerdings bin ich was ftp angeht ein absoluter neuling und komme einfach nicht drauf wo der Fehler liegen könnte. Ich würde mich freuen wenn jemand von euch der da ein bisschen mehr Erfahrung in der richtung hat mir einen kleinen Tipp geben könnte.
Hier erstmal die Methode 'download'
Code:
public File download(File file,String name) throws IOException
{
ftp.sendServer("PASV\r\n");
OutputStream os = new FileOutputStream (file, false);
InputStream is = ftp.get(name);
int len;
byte[] buf = new byte[1024];
while ((len = is.read(buf)) >= 0){
os.write(buf, 0, len);
}
is.close();
os.close();
return file;
}
Vielen Dank im voraus
Gruß
Paladin