Hi!!!
Zur ersten Frage: Nur dateien zurückliefern, die in der Datei xy stehen?
Das folgende Beispiel bezieht sich auf die aktuellste HTTPServer Komponente von Indy und steht in den Ereignissen unter OnCommandGet:
procedure TForm1.IdHTTPServer1CommandGet(AThread: TIdPeerThread;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
If Memo1.Lines.IndexOf(ARequestInfo.Document) > 0 then
IdHTTPServer1.ServeFile(ARequestInfo.Document)
end;
Jetzt werden alle Dateien zurückgesandt, die im Memofeld stehen.
ACHTUNG: ArequestInfo.Document enthält den kompletten Pfad zur Datei.
Das Einschränken auf eine Dateiart kannst Du, wie oben realisieren:
Beispielsweise kann
Memo1.Lines.IndexOf(ARequestInfo.Document) ] 0 durch
Pos('.bat', ArequestInfo.Document) ] 0 ersetzen, und der Server liefert nur noch *.bat Dateien zurück.
Zur letzten Frage...
Wenn Du den Code aus den Tipps nimmst, allerdings bei der URL den Port mit angibst (Beispiel: [a href="http://xyz:66/dateipfadzurdatei)" target="_blank"]http://xyz:66/dateipfadzurdatei)[/a] wird die verbindung zu einem anderen Port als dem Standard HTTP Port aufgebaut...
Ich hoffe, ich konnte Dir helfen...
Gruß helen