![]() |
IdFTPServer - Kleine Probleme mit Uploads und Ordnern.
Hallo,
mein Problem ist, denke ich mal nur ein kleines. Der IdFTPServer funktioniert soweit Problemlos bis auf folgende Fehler: 1. Per FTP Clienten kann man maximal zwei Dateien gleichzeitig hochladen bei 30Dateien kein Problem. Werden jedoch 4 gleichzeitig im FTP Client eingestellt bringt jede 7-8 Datei ein Upload Fehler. Der Fehler zeigt, dass der Server nicht erreichbar sei.
Delphi-Quellcode:
procedure TForm1.IdFTPServer1StoreFile(ASender: TIdFTPServerContext;
const AFileName: string; AAppend: Boolean; var VStream: TStream); begin if not Aappend then VStream := TFileStream.Create(ReplaceChars(AppDir+AFilename),fmCreate) else VStream := TFileStream.Create(ReplaceChars(AppDir+AFilename),fmOpenWrite) end; 2. Unter FileZilla (Linux/Windows) sowie PHP FTP kann man auf dem Server neue Verzeichnisse erstellen. Dabei wird nachfolgende Funktion aufgerufen. Bei cuteFTP hingegen kann der Ordner nicht erstellt werden obwohl es keine Fehlermeldung gibt sondern ein "Ordner wurde erstellt". Auch wird die Funktion des idFTPServers gar nicht erst aufgerufen hab dort ein ShowMessage als Kontrolle eingebaut gehabt. :( Die Einstellungen sind jedoch wie FileZilla gesetzt. Mein Bedenken nun, dass auch andere FTP Clienten nicht gehen, wenn ich den FTP Server bereitstelle. Gibt es in IdFTPServer noch eine andere Möglichkeit, einen ordner zu erstellen?
Delphi-Quellcode:
procedure TForm1.IdFTPServer1MakeDirectory(ASender: TIdFTPServerContext;
var VDirectory: string); begin if not DirectoryExists(ReplaceChars(AppDir + VDirectory)) then if not CreateDir(ReplaceChars(AppDir + VDirectory)) then begin Raise Exception.Create('Unable to create directory'); end; end; 3. So dritter und letzter Fehler. Dateien hochladen geht ja problemlos, sei es nun mal mit den maximal 2Dateien gleichzeitig außer acht gelassen. Nur das Problem sind die Verzeichnisse. Lade ich nun einen Ordner mit Dateien darin hoch geht es nicht, da er kein Ordner erstellt egal ob Filezilla (Linux/Windows) etc. Er will also alle Dateien hochladen ohne vorher zu prüfen ob nicht erst ein Ordner angelegt werden muss. Meine Idee nun, dass ich bei IdFTPServer1StoreFile die Variable AFilename zerlege und den Dateinamen am Ende lösch und den Pfad als AFoldername speicher und dann überprüf, ob der Ordner vorhanden ist, wenn nicht dann erstellen. Nur wie kann ich den String zerlegen so dass ich nur den Pfad ohne Datei bekomm? C:\ftpverzeichnis\subfolder\datei1.test C:\ftpverzeichnis\subfolder\datei2 Also die Dateien haben auch mal keine Endung. Wäre echt super, wenn mir jemand bei 2. und 3. eine Lösung nennen könnte und perfekt, wenn auch 1. irgendwie zu lösen wäre. *G* |
AW: IdFTPServer - Kleine Probleme mit Uploads und Ordnern.
Zu Punkt 3. :
Versuch es mal mit
Delphi-Quellcode:
.
ExtractFileDir
Wenn die Datei eine Endung hat funkt es. Weis aber nicht ob es geht wenn sie keine hat. Man müsste dan vielleicht die Funktion
Delphi-Quellcode:
umbauen, für deine Zwecke.
ExtractFileDir
Gruß NickelM |
AW: IdFTPServer - Kleine Probleme mit Uploads und Ordnern.
Danke das geht nun auch. Bleiben nur noch 1. und 2. offen. Beim übertragen meckert er zudem, dass bei MDTM keine Rückmeldung erfolgt. :(
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:24 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