AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi [IdFtp, IndyFTP] Download fortsetzen funtzt einfach nicht!
Thema durchsuchen
Ansicht
Themen-Optionen

[IdFtp, IndyFTP] Download fortsetzen funtzt einfach nicht!

Ein Thema von white-desert · begonnen am 19. Dez 2006 · letzter Beitrag vom 29. Jun 2007
Antwort Antwort
Seite 1 von 2  1 2      
white-desert

Registriert seit: 27. Sep 2006
11 Beiträge
 
#1

[IdFtp, IndyFTP] Download fortsetzen funtzt einfach nicht!

  Alt 19. Dez 2006, 08:10
Hallo,

Ich habe das folgende Problem:

Ich will einen abgebrochenen Download fortsetzen, habe alle
Empfehlungen im Internet ausprobiert - nichts funktioniert! Mein Code:

Delphi-Quellcode:
...
         {------------------------------------------}  
         { Den FileStream fuer den Resume erstellen }  
         {------------------------------------------}  
         if FileExists(Zieldatei) then
         begin
           Fs := TFileStream.Create(Zieldatei, fmOpenReadWrite);
           Fs.Position := Fs.Size;
         end
         else
           Fs := TFileStream.Create(Zieldatei, fmCreate);


         {------------------------------------------}  
         { Ab der gewissen Position anfangen        }  
         {------------------------------------------}  
         Ftp.Get(Quelldatei, Fs, True);
         Ftp.KillDataChannel;
Ich habe auch ohne Filestream, also direkt mit
Code:
Ftp.Get(Quelldatei, Zieldatei, False, True);
versucht, aber es will nicht funktionieren!

Ich wuerde mich sehr freuen, wenn mir jemand helfen koennte!

Meine Indy-Version: 10.0.2151.25345 [<-- Vielleicht liegt es an der
Indy-Version???]

Meine Programmierumgebung: Borland Developer Studio 2006

Danke im Voraus!
  Mit Zitat antworten Zitat
white-desert

Registriert seit: 27. Sep 2006
11 Beiträge
 
#2

Nachtrag: [IdFtp, IndyFTP] Download fortsetzen ...

  Alt 19. Dez 2006, 10:05
... und der Server unterstuetzt 100%ig Resumes, weil die Property CanResume True ist und mit SmartFTP der Resume einwandfrei geht.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: [IdFtp, IndyFTP] Download fortsetzen funtzt einfach nich

  Alt 19. Dez 2006, 10:08
Herzlich willkommen in der Delphi-PRAXiS, white-desert.

Ich habe zum Testen D7, Indy9 und Sambar63 verwendet - und es funktioniert!

Delphi-Quellcode:
function Download(const url: String; fnLocal: TFileName): Boolean;
var
  fs: TStream;
  s: TStrings;
  ftp: TIdFTP;
begin
  s := TStringList.Create;
  if CrackUrl(url, s) and (AnsiIndexText(s.Values['scheme'], ['ftp', '']) >= 0) then
  begin
    ftp := TIdFTP.Create(Application);
    ftp.Host := s.Values['hostname'];
    if ftp.Host = 'then ftp.Host := 'localhost';
    ftp.Username := s.Values['username'];
    if ftp.Username = 'then ftp.Username := 'anonymous';
    ftp.Password := s.Values['password'];
    try
      ftp.Connect;
      if FileExists(fnLocal)
        then fs := TFileStream.Create(fnLocal, fmOpenReadWrite or fmShareDenyWrite)
        else fs := TFileStream.Create(fnLocal, fmCreate);
      if ftp.ResumeSupported then
        fs.Position := fs.Size;
      try
        ftp.Get(s.Values['urlpath'], fs, fs.Position > 0);
        Result := True;
      finally
        fs.Free;
      end;
      ftp.Disconnect;
    except
      Result := False;
    end;
  end else Result := False;
  s.Free;
end;

// Getestet habe ich so:

procedure TDemoForm.DownloadButtonClick(Sender: TObject);
const
  fn = 'c:\temp\demo.uxp';
  url = 'ftp://localhost/demo.uxp';
begin
  if FileExists(fn) then
    with TFileStream.Create(fn, fmOpenReadWrite or fmShareDenyWrite) do
    begin
      Size := Size shr 1;
      ShowMessage(Format('size before download: %d', [Size]));
      Free;
    end;

  if Download(url, fn) then
    with TFileStream.Create(fn, fmOpenRead or fmShareDenyNone) do
    begin
      ShowMessage(Format('size after download: %d', [Size]));
      Free;
    end;
end;
Vielleicht findest du deinen Fehler durch einen Vergleich mit meinem Code? CrackUrl()

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
white-desert

Registriert seit: 27. Sep 2006
11 Beiträge
 
#4

Re: [IdFtp, IndyFTP] Download fortsetzen funtzt einfach nich

  Alt 19. Dez 2006, 10:26
Danke fuer deine Antwort und Muehe, ich habe meinen Quellcode an deinen angepasst: es geht immer noch nicht! Das liegt dann wohl an der Indy-Version (siehe oben). Oder hat jemand andere Erfahrungen gemacht?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: [IdFtp, IndyFTP] Download fortsetzen funtzt einfach nich

  Alt 19. Dez 2006, 10:53
Vielleicht liegt es auch am FTP Server, das er dieses nicht unterstützt.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

Re: [IdFtp, IndyFTP] Download fortsetzen funtzt einfach nich

  Alt 19. Dez 2006, 11:17
hmm kann schon sein das es an denn 10er indys liegt, die haben bei manchen schon so komische
probleme verursacht!!!

könntest du bei der installation nicht auswählen welche indys du nehmen willst???
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: [IdFtp, IndyFTP] Download fortsetzen funtzt einfach nich

  Alt 19. Dez 2006, 12:14
Ich mag nicht glauben, dass Indy10 hier schuld an den Problemen ist. Die meisten Probleme mit den Indy10-Komponenten dürften ohnehin dadurch verursacht werden, dass - wie so oft schon in diesem Projekt - ein paar Dinge über den Haufen geworfen oder anders implementiert wurden - Stichwort Abwärts-Kompatibilität. Zum Für und Wider dieser Praxis meine ich auch schon Aussagen vom Project Team gelesen zu haben.

Ich würde die Code-Zeilen im internen Debugger abarbeiten und schauen wo im Detail es klemmt.

Freundliche Grüße
  Mit Zitat antworten Zitat
white-desert

Registriert seit: 27. Sep 2006
11 Beiträge
 
#8

Re: [IdFtp, IndyFTP] Download fortsetzen funtzt einfach nich

  Alt 20. Dez 2006, 07:16
Zitat von marabu:
Ich würde die Code-Zeilen im internen Debugger abarbeiten und schauen wo im Detail es klemmt.
Indy Ftp downloaded einfach die ganze Datei und ueberschreibt lokal die bereits vorhandene, was ich ja nicht will. Ich moechte doch, dass der Download fortgesetzt wird.
Zitat von marabu:
die Code-Zeilen
Mein Code funktioniert wie gesagt, so, wie ich es nicht moechte.
oder meinst du, dass ich den IdFTP-Code anschauen soll?
Zitat:
Datei IdFTP.pas nicht gefunden ...
sagt mir Borldand Developer Studio. Was soll ich tun?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: [IdFtp, IndyFTP] Download fortsetzen funtzt einfach nich

  Alt 20. Dez 2006, 09:47
Hallo,

kannst du ein kleines Demo-Projekt basteln? Ich würde es dann unter meinen Bedingungen (D7, Indy9) zum Laufen bringen. Dabei erkenne ich vielleicht, ob es an deinem Code liegt oder an etwas anderem.

Freundliche Grüße
  Mit Zitat antworten Zitat
Astronaut

Registriert seit: 25. Feb 2007
Ort: Taufkirchen
3 Beiträge
 
#10

Re: [IdFtp, IndyFTP] Download fortsetzen funtzt einfach nich

  Alt 25. Feb 2007, 14:22
Hallo,
ich habe derzeit das gleiche Problem, und kann die Erfahrung mit Indy 10 nur bestätigten, ein Fortsetzen geht nicht.
Das Problem scheint zu sein, das die get-Routine immer ein FTP Befehl "REST 0" for dem "RETR filename" zum Server sendet und damit immer von Anfang an geladen wird. Die Tatsächliche Positionsangabe im Sourcefile wird warum auch immer ignoriert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz