Hey ho,
ich habe gerade ein ziemliches Problem mit meinem Programm das Dateien per
FTP hochladen soll.
Folgendes zum Programm:
Das Programm soll zuerst von JPG Files 2 Thumbs machen (1. ca. 600*400, 2. ca. 125*100). Wenn die alle erstellt sind, sollen die 3 verschiedenen groessen auf nen
ftp server hochgeladen werden. Das funktioniert soweit ganz gut. Allerdings bricht er beim hochladen nach einiger Zeit ab mit der Fehlermeldung:
Zitat:
Socket Error # 10054 Connection Reset by peer
Der Fehler tritt immer dann auf wenn gerade eine Datei in Originalgroesse hochgeladen wird. Ausserdem ist keine Zeit erkennbar nach der getrennt wird. Einmal nach 3 Dateien oder einmal nach 20.
Es scheint ja so, dass die Verbindung aufgrund einer Timeouts oder dergleichen abgebrochen wird, nur die Frage ist natuerlich wie umgehe ich das oder wie merke ich dass die Verbindung verloren wurde und verbinde neu?
Ich benutze die
Indy FTP Komponente zum hochladen.
Hier Teile meines Quellcodes:
Delphi-Quellcode:
connect;
if not jadd then
myftp.MakeDir(form1.cb_directory.Text);
myftp.ChangeDir(form1.cb_directory.Text);
for i:=0 to jfiles.Count-1 do begin
filename := ExtractFilename(jfiles[i]);
destination := filename;
ext := ExtractFileExt(destination);
while myftp.Size('p_' + destination) > -1 do begin
j := j + 1;
destination := copy(destination, 0, length(destination)-length(ext))+inttostr(j)+ext;
end;
myftp.Put(dir + 'p_' + filename, 'p_' + destination);
myftp.Put(dir + 'm_' + filename, 'm_' + destination);
myftp.Put(dir + 'g_' + filename, 'g_' + destination);
end;
myftp.Quit;
Und dann habe ich noch eine 2 Frage: Wie kann ich dadrauf regieren wenn z.b. keine Verbindung zum Internet besteht, der Benutzername falsch war oder der Host nicht zu erreichen ist. Wie komme ich an den Fehlercode der mir sagt was passiert ist damit ich ihn selber zu einer Fehlermeldung verarbeiten kann?
Viele Gruesse und schon mal viele dank
Magier