Registriert seit: 14. Apr 2003
2 Beiträge
Delphi 7 Enterprise
|
20. Jun 2003, 02:55
Also, sagen wir mal du hast nen Commandhandler gemacht der auf das Kommando download reagiert, hast als CmdDelimiter ein Leerzeichen genommen und der Client sendet :
SendCMD('Download ' + edit1.text)
Beim server ergibt das den folgenden Event :
procedure TfrmMain.IdTCPServerDownloadCommand(ASender: TIdCommand);
var
cFileName: String;
fStream: TFileStream;
begin
cFileName := ASender.Params[0];
Und jetzt hast du den Filenamen, den der Client angefordert hat.
Alle Parameter, die hinter dem CmdLimiter folgen, werden als
Params[0]...Params[n] angesehen, je nachdem, wieviele Parameter du dem Command hast folgen lassen, das lässt sich mit Params.Count feststellen.
Und jetzt brauchst du ja nur die Datei zu senden, z.B. so :
fStream := TFileStream.Create(cFileName,fmOpenRead + fmShareDenyNone);
ASender.Thread.Connection.OpenWriteBuffer;
ASender.Thread.Connection.WriteStream(fStream);
ASender.Thread.Connection.CloseWriteBuffer;
HTH
Henri
|