Einzelnen Beitrag anzeigen

calibra301

Registriert seit: 20. Mär 2009
110 Beiträge
 
Delphi XE8 Professional
 
#1

Delphi FTP PRoblem

  Alt 8. Aug 2025, 15:16
Hallo,

hab hier ein komisches Verhalten beim FTP Upload von einem zip, knapp 4MB

Test 1 mit TidFTP Komponente:
Delphi-Quellcode:
FTP.Host := 'hostadresse';
  FTP.Username :='username';
  FTP.Password :='password';
  FTP.Passive:=true; // false auch probiert
  FTP.Connect;
  FTP.ChangeDir('upgrades');
  FTP.Put(Filename,extractfilename(Filename),true);
  ftp.Disconnect;
Test 2 mit Code aus dem Netz:
Delphi-Quellcode:
function putfile(server, username, password, localfile, remotefile: string; port: word = 21): boolean;
var
  hopen, hconnect: HINTERNET;
begin
  hopen := InternetOpen('myagent', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
  if Assigned(hopen) then
      begin
        hconnect := InternetConnect(hopen, pchar(server), port, pchar(username), pchar(password), INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
        if Assigned(hconnect) then
          begin
            Result := FtpSetCurrentDirectory( hconnect,pchar('upgrades'));
            Result := FtpPutFile(hconnect, pchar(localfile), pchar(remotefile), FTP_TRANSFER_TYPE_UNKNOWN, 0);
            InternetCloseHandle(hconnect);
          end
        else
          begin
            Showmessage(IntToStr(GetLastError));
            Result := False;
          end;
      end
    else
      begin
            Showmessage(IntToStr(GetLastError));
            Result := false;
      end;
end;
Problem: In beiden Fällen kommt das File auf dem FTP an, es fehlen aber ein paar Byte. Origina: 3.993.240, angekommen 3.897.713
Somit ist der Download natürlich unbrauchbar.
Lade ich mit dem TotalCommander hoch -> alles gut.

Edit: Fehler gefunden aber Grund noch nicht. Vom FTP.Put(Filename,extractfilename(Filename),true); das ",true" weglassen und es geht..
Manchmal hilft Doku lesen wohl mehr als Copy/Paste

Geändert von calibra301 ( 8. Aug 2025 um 15:28 Uhr)
  Mit Zitat antworten Zitat