AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Leere Datei auf Server nach Upload mit idFtp.Put -> Warum?
Thema durchsuchen
Ansicht
Themen-Optionen

Leere Datei auf Server nach Upload mit idFtp.Put -> Warum?

Ein Thema von torud · begonnen am 22. Aug 2011 · letzter Beitrag vom 22. Aug 2011
 
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Leere Datei auf Server nach Upload mit idFtp.Put -> Warum?

  Alt 22. Aug 2011, 15:28
Hallo Wissende,

mit folgendem Code schiebe ich Dateien auf einen Server im Internet.

Verrückterweise funktioniert das auf meinem System immer wunderbar. Sobald User, die "nur" einen Webstick haben, das versuchen, kann es vorkommen, dass die Datei auf dem Server leer ankommt. Also nicht nur ein bisschen was, sondern komplett leer. Die Dateien sind XML-Dateien, die max 8kb haben.

Kann es sein, dass die Verbindung zu langsam ist und hier ein Timeout zum Tragen kommt? Ich bin ziemlich ratlos. Am Anfang war es Norton, der uns blockiert hat, später stellte sich noch die WindowsFirewall in den Weg. Jetzt wo eigentlich alles funktionieren müsste, kommt es immer wieder vor, dass User 0-byte-Dateien hochladen.

Vielleicht hat sich ja auch ein Fehler in die Routine eingeschlichen? Achso, das Ganz ist als Thread gemacht. Wenn ich den Code hier einstellen soll, mach ich das gern.

Delphi-Quellcode:
procedure TXMLUploader.Execute;
var
  Ftp : TIdFTP;
begin
  if bIsBusy then exit;
  try
    if FileExists(FileName) then
      begin
        Ftp := TIdFTP.Create(nil);
        Ftp.Host := 'myserver';
        Ftp.Username := 'myuser';
        Ftp.Password := 'mypassword';
        Ftp.Port := 21;
        Ftp.Connect;
        try
          Ftp.Login;
          FTP.ChangeDir('html/services/football/ekstraklasa/cis/xml');
          try
            bIsBusy := True;
            FTP.Put(FileName, ExtractFileName(FileName));
            form1.lbl_status.Font.Color := clGreen;
            form1.lbl_status.Caption := DateTimeToStr(now) + ' Upload of current Statistics-File was succesful!';
            bIsBusy := False;
          except
            on e: exception do begin
              form1.lbl_status.Font.Color := clRed;
              form1.lbl_status.Caption := DateTimeToStr(now) + ' Can´t upload current Statistics-File!';
              if Ftp <> nil then Ftp.Free;
              form1.mem_debug.Lines.Add(e.Message);
              bIsBusy := False;
            end;
          end;
        finally
          Ftp.Disconnect;
          Ftp.Free;
          bIsBusy := False;
        end;
      end;
  except
    on e: exception do begin
      form1.lbl_status.Font.Color := clRed;
      form1.lbl_status.Caption := DateTimeToStr(now) + ' Can´t connect to server!';
      if Ftp <> nil then Ftp.Free;
    end;
  end;
end;
Danke
Tom
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz