![]() |
Re: Datei per FTP hochladen
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Du bekommst nur die Pfadangaben geliefert. Bei einigen Pfaden kann man aber davon ausgehen, dass der aktuelle Benutzer dort Schreibrechte haben sollte, sonst könnte der nämlich nicht vernünftig arbeiten :mrgreen: Kompliziert ist das nicht wirklich ... dafür gibt es fertige Units womit man das auslesen kann. Die Jedi's haben da einiges im Programm. Ich habe dir mal eine Unit angehängt, die diese Special Folders mit einfachen Befehlen erschlägt :mrgreen: Zudem ist in der Unit auch eine Funktion, die dir die Rechte in dem Verzeichnis oder an einer Datei zurückliefert. Eine Demo ist auch dabei, da werden alle Special Folders aufgelistet inkl. der Rechte. |
Re: Datei per FTP hochladen
Vielen Dank dafür erstma, doch wie genau binde ich das nun in meinen Quelltext ein?
Also was genau muss ich denn jetzt machen? Habs jetzt soweit verstanden, dass SpecialFolders mir die Ordner anzeigt, die Schreibrecht haben usw. Doch was nun? Wie genau bau ich das nun ein? |
Re: Datei per FTP hochladen
z.B. so (ich habe mal die schönen Eigenheiten der Unit hier benutzt :mrgreen: )
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdFTP, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; IdFTP1: TidFTP; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses // Unit einbinden uSpecialFolders; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var sl:TStrings; begin // Temporäres Verzeichnis für diese App erstellen if ForceDirectories( ResolveSFVars( '{appdatatemp}' ) ) then begin sl := TStringList.Create; try sl.Add(Edit1.text); sl.Add(Edit2.text); sl.SaveToFile( ResolveSFVars( '{appdatatemp}\text.txt' ) ); finally sl.Free; end; with IdFTP1 do begin Host :='kidgudi.ki.funpic.de'; Username := 'kidgudi'; Password := '*****'; Passive := true; Connect; Put( ResolveSFVars( '{appdatatemp}\text.txt' ), 'text.txt', true); Disconnect; end; // Temporäres Verzeichnis aufräumen und löschen DeleteAndEmptyDir( '{appdatatemp}' ); end else ShowMessage( 'Temporäres Verzeichnis konnte nicht erstellt werden!' ); end; end. |
Re: Datei per FTP hochladen
Oke um die Unit uSpecialFolders einzubinden, muss sie sich im gleichen Ordner befinden, wie die normale Unit1 auch? Oder ist das egal?
Also habs soweit miteinbezogen, doch nun kommt die Fehlermeldung: Exception class EIdReplyRFCError with message 'text.txt: Append/Restart not permitted, try again'. Was nun? =( Update: Fehlermeldung scheint weg zu sein, funktioniert alles einwandfrei. Danke ;) |
Re: Datei per FTP hochladen
Hallo
Ich versuche mit der TIdFTP-Komponente via Put einige größere Dateien hochzuladen. Das heißt ich führe den Connect durch und rufe anschließend in einer Schleife mehrmals hintereinander Put auf. Leider kommt es dann immer mal wieder vor, dass die Verbindung unterbrochen wird. Bei der Protokollierung über das OnStatus-Ereignis erhalte ich dann als Meldungstext "Disconnected". Wie geht man in so einem Fall am besten vor ? Kann man einfach erneut Connect aufrufen (innerhalb der OnStatus-Behandlung) ? Oder wie macht ihr das ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:04 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