Startseite ¦  was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews ¦  sonstiges
kylix ¦  tutorials ¦  online shop ¦  fotos ¦  Add&Win Gewinnspiel


Willkommen Gast. Bitte einloggen oder registrieren.
22.05.2012, 12:39:37
Übersicht Hilfe Suche Einloggen Registrieren

+  SwissDelphiCenter Forum
|-+  German Forums
| |-+  Internet / LAN Forum
| | |-+  3 interessante Fragen... Webserver & httpGET Port
« vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: 3 interessante Fragen... Webserver & httpGET Port  (Gelesen 1259 mal)
zero
Jr. Member
**
Offline Offline

Beiträge: 98



« am: 09.03.2003, 16:46:52 »

Hallöle

Ist es irgendwie möglich einen Webserver (also das Delphi-programm)
so einzustellen, dass es nur jene Dateien servet, welche in einer
Datei foo.dat festgelegt sind?

Falls nicht, könnte man den Webserver
auf nur eine Dateiart einschränken (bspw. sollen nur *.bat Dateien
verfügbar sein, auch wenn bspw. index.html, *.htm *.html etc.
vorhanden sind) ?

Bei den Programmier Tips wird ja gezeigt, wie man eine Datei
downloaden kann. Aber was, wenn der webserver nicht auf
Port 80 sondern auf port 9999 läuft? Kann man den Port
beim downloaden irgendwie festlegen? (evtl. indy komponente
benutzen? )

Vielen vielen Dank im voraus, Zero.
Gespeichert
helen
Full Member
***
Offline Offline

Beiträge: 131



« Antworten #1 am: 09.03.2003, 21:09:20 »

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:

Code:

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
Gespeichert

\"Die Popularität ist eine vorübergehende Sache, die sich heute auf das, morgen auf jenes richtet\"
Bismarck
zero
Jr. Member
**
Offline Offline

Beiträge: 98



« Antworten #2 am: 10.03.2003, 01:25:55 »

Hallo nochmal!

Vielen Dank für die Antwort, helen!!!!

Leider hab ich ein Problem mit

ARequestInfo.document

Ich bekomme nämlich immer folgende Fehlermeldung:

[Error] Unit1.pas(145): Incompatible types: 'TIdPeerThread' and 'String'

Was mache ich falsch??

Danke im voraus, zero
Gespeichert
Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS