Entwickler-Ecke

Internet / Netzwerk - Download Problem


OliverN_26 - Mi 12.01.11 20:37
Titel: Download Problem
Hi Leute

Ist das 1.Mal dass ich mit den Indy-Komponenten rum spiele. Ich stosse hier an ein Problem wo ich einfach nicht mehr weiter weiss.
Per Programm öffne ich ein kleines Fenster wo sich Benutzer anmelden können und wo dann entsprechende Einstellungen des jeweiligen Users von einem Server geladen und gesetzt werden. Klappt soweit alles wunderbar.

Problem:
Wenn sich der 1. Benutzer angemeldet hat, Änderungen macht, einen 2. Benutzer lädt und dann wieder den vorigen, sind die Einstellungen weg. Wenn sich der 1. Benutzer angemeldet hat, Änderungen macht, das Programm beendet und wieder neu lädt ist alles perfekt. Prüfe ich während das Programm geöffnet ist den Inalt der Datei auf dem Server ist alles genau so wie es sein soll. Also Änderungen werden richtig gespeichert nur werden sie kein 2.Mal abgerufen. Irgendwie scheint sich das Programm die vorigen Daten irgendwo zu speichern und immer wieder abzurufen..

Falls ihr euch fragt warum 2x anmelden unter anderen Benutzern. Das wird eine kleine Online-ToDoListe, wo man seine eigene,lokale Liste hat und halt eine Online, in die unterschiedliche Benutzer einsehen können.

Ich downloade wie folgt:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
// Verbindung zum Server aufbauen
  IdFTP1.Username := USERNAME;
  IdFTP1.Password := PASSWORD;
  IdFTP1.Host     := HOST;
  IdFTP1.Connect;

  // Übertragungsmodus einstellen
  IdFTP1.TransferType := ftBinary;

  // Verzeichnis wechseln
  IdFTP1.ChangeDir(Dir1);
  IdFTP1.ChangeDir(Dir2);
  IdFTP1.ChangeDir(ListBox1.Items.Strings[ListBox1.ItemIndex]);

  // Datei holen
  DBPfad := PChar('http://USER:PW@www.xxx.com/Dir2/' + ListBox1.Items.Strings[ListBox1.ItemIndex] + '/' + 'Datei.txt');
  DBZiel := PChar(ExtractFilePath(ParamStr(0)) + 'Datei.txt');
  UrlDownloadToFile(nil, DBPfad, DBZiel, 0nil);

  // vom Server abmelden
  IdFTP1.Disconnect;
  IdFTP1.Quit;


Wie gesagt .. beim 1.Mal lädt er alles richtig. Macht der User Änderungen und speichert diese, ist auf dem Server alles so wie es sein soll. Die Pfade die ich übergebe stimmen, nur holt er sich die Daten beim 2. Mal nich von da. Beim 2.Load sind es immernoch die vom 1.Mal
Ist etwas schwer zu erklären .. ich hoffe ihr habt mich einigermassen verstanden :-(

danke

Moderiert von user profile iconNarses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.


jaenicke - Mi 12.01.11 20:47

Schau dir einmal TIdHttp an. Das gilt auch für dein anderes Problem.

Wenn du den Download über die Url... Funktion machst, spielt dir der Cache vermutlich einen Streich. Insbesondere, wenn der Header, den der Server sendet, nicht beinhaltet, dass diese stets vom Server neu zu holen ist.


OliverN_26 - Mi 12.01.11 20:58

Ich danke dir.
Werd "beides" später mal prüfen.


OliverN_26 - Fr 14.01.11 03:34

göttlich .. habs mit IdHTTP gemacht und nu läuft es.
Danke