Autor Beitrag
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: So 31.05.09 14:51 
Moin,

ich möchte mit meinem FTP Client natürlich dem Benutzer auch die möglichkeit geben Dateien auf seinen Rechner herunterzuladen, das ganze mache ich ja mit Indy9.
Jetzt habe ich das zuletzt getestet und mir ist aufgefallen er speichert zwar etwas aber es sind leere Dateien, egal ob ich beim SaveDialog die Dateiendung mitangebe oder nicht. Wenn ich z.B. .jpg daran hänge wird es zwar als Bilddatei anerkannt aber sie ist leer, und ohne Endung ist es eine Datei die von keinem Programm geöffnet werden kann.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
// Upload & Download
procedure TForm1.UpAndDownload(upload : boolean);
var
   path : string;  // Uploaddateipfad
   i : integer;
   onlinefile : string;   // Downloaddateipfad
begin
if MyFTP.Connected then     // Prüfen ob Verbindung besteht
   begin
     if upload then        // Auf Upload prüfen
        begin
        for i := 0 to FileListBox1.Items.Count-1 do if FileListBox1.Selected[i]
            then path := FileListBox1.Items[i];
        with MyFTP do
             begin
              try
               Put(path, ExtractFilename(path));
               ShowMessage('Upload erfolgreich.');
              except
               ShowMessage('Upload fehlgeschlagen.');
              end;
             end;
        end
     else             // Wenn kein Upload dann Download
         with MyFTP do
              begin
               try
                onlinefile := ListBox1.Items[ListBox1.ItemIndex];
                SaveDialog1.Execute;
                Get(onlinefile, SaveDialog1.FileName, true);
               except
                ShowMessage('Download Fehlgeschlagen.');
               end;
              end;
   ActList;
   end
   else ShowMessage('Sie haben keine Verbindung zu einem Server.');
end;

// Download Button
procedure TForm1.DownloadFileButClick(Sender: TObject);
begin
     UpAndDownload(false); // Download Prozedur wird gestartet
end;


Kann mir einer sagen wo der Fehler liegt, ich habe absolut keine Ahnung was da falsch läuft. :autsch:

Gruß Dude566

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 31.05.09 15:05 
Put ist so deklariert:
ausblenden Delphi-Quelltext
1:
procedure TIdFTP.Put(const ASourceFile: stringconst ADestFile: string = ''const AAppend: Boolean = False);					
Quelldatei und (falls man den Namen ändern will z.B.) Zieldatei.

Du aber schreibst da den Pfad und den Dateinamen hin. :shock:
Dude566 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: So 31.05.09 15:08 
Es geht aber um den Download und nicht den Upload du beziehst dich gerade auf Put was bei dem Upload verwendet wird, ich will aber richtig downloaden mit Get.

Hast du da etwas verwechselt?

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 31.05.09 15:45 
Also ich habe es gerade einmal getestet. Wenn der Inhalt der ListBox korrekt ist, sollte das eigentlich klappen.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
  MyIdFtp: TIdFTP;
begin
  MyIdFtp := TIdFTP.Create;
  try
    MyIdFtp.Username := '***';
    MyIdFtp.Password := '***';
    MyIdFtp.Connect('ftp.sj-berlin.de');
    MyIdFtp.ChangeDir('webseiten/updater/updatedemo');
    MyIdFtp.Get('versioninfo''Z:\TEMP\versioninfo.txt');
    MyIdFtp.Disconnect;
  finally
    MyIdFtp.Free;
  end;
Und auch so klappt es:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var
  MyIdFtp: TIdFTP;
begin
  MyIdFtp := TIdFTP.Create;
  try
    MyIdFtp.Username := '***';
    MyIdFtp.Password := '***';
    MyIdFtp.Connect('ftp.sj-berlin.de');
    MyIdFtp.Get('webseiten/updater/updatedemo/versioninfo''Z:\TEMP\versioninfo.txt');
    MyIdFtp.Disconnect;
  finally
    MyIdFtp.Free;
  end;
:nixweiss:
(versioninfo ist eine Datei ohne Dateierweiterung, die mein Autoupdater verwendet.)
Dude566 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: So 31.05.09 15:54 
Ja aber das ist im Prinzip doch eigentlich das gleiche wie bei mir, nur das ich aus dem aktuellen Verzeichnis downloade wo ich bin da ich ja eine eigene Procedure habe zum Verzeichnis wechseln. Daran kann es doch nicht liegen.

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 31.05.09 16:11 
Nachdem ich jetzt einen Blick in den Quelltext geworden habe:
In der ListBox steht nicht nur der Dateiname sondern auch die Dateirechte usw., an Get darfst du aber natürlich nur den Dateinamen übergeben. ;-)

Du würdest es dir einfacher machen, wenn du eine Liste ohne diese Angaben führen würdest bzw. das lieber in eine ListView mit einzelnen Spalten schreiben würdest. ;-)
Dude566 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: So 31.05.09 17:24 
Gut, ich denke somit haben sich alle Probleme gelöst.

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.