![]() |
HTTP Server Home Directory Auswählen
Hallo
Wie Kann ich beim Indy HTTP Server das Ins Web zu stellende Directory auswählen bzw. definieren? Liebe grüsse und danke Claudio Hediger |
Re: HTTP Server Home Directory Auswählen
Hallo Claudio,
du kannst deinen Server über Startparameter (ParamCount, ParamStr) oder eine Steuerdatei (TMemIniFile) konfigurieren. Außerdem benötigst du eine Funktion, welche dir zu gegebenem URL den passenden Dateinamen liefert (ExpandFileName). Bei den Indy9 Demos ist ein Beispiel für einen HTTP Server mit dabei. Grüße vom marabu |
Re: HTTP Server Home Directory Auswählen
vielen dank
hmmm köntest du mir einen link senden zu dieser demo oder am besten den code posten? vielen dank ich will ja nur das ein verzeichniss im web verfügbar wird |
Re: HTTP Server Home Directory Auswählen
|
Re: HTTP Server Home Directory Auswählen
vielen dank aber leider funktioniert dieses beispiel bei mir nicht es hat sehr viele undefinierte bezeichner, ca 20
kannst du mir nicht mal den code posten mit dem ich das verzeichnis definieren kann? vielen dank |
Re: HTTP Server Home Directory Auswählen
Suche doch mal im Quelltext des Beispiels nach ExpandFileName - darüber wird dort ein URL in einen Dateinamen umgeformt. Wenn du das Beispiel nicht übersetzen kannst, dann solltest du mal schauen was du noch installieren oder konfigurieren musst - wer weiß wann du es benötigst.
marabu |
Re: HTTP Server Home Directory Auswählen
ich konnte nur diesen code finden
Delphi-Quellcode:
aber der geht nicht
// Interprete the command to it's final path (avoid sending files in parent folders)
LocalDoc := ExpandFilename(edRoot.text + RequestInfo.Document); // Default document (index.html) for folder if not FileExists(LocalDoc) and DirectoryExists(LocalDoc) and FileExists(ExpandFileName(LocalDoc + '/index.html')) then begin LocalDoc := ExpandFileName(LocalDoc + '/index.html'); end; if FileExists(LocalDoc) then // File exists begin if AnsiSameText(Copy(LocalDoc, 1, Length(edRoot.text)), edRoot.Text) then // File down in dir structure begin if AnsiSameText(RequestInfo.Command, 'HEAD') then begin // HEAD request, don't send the document but still send back it's size ResultFile := TFileStream.create(LocalDoc, fmOpenRead or fmShareDenyWrite); try ResponseInfo.ResponseNo := 200; ResponseInfo.ContentType := GetMIMEType(LocalDoc); ResponseInfo.ContentLength := ResultFile.Size; finally ResultFile.Free; // We must free this file since it won't be done by the web server component end; So wie ich das sehe kennst du dich damit ein bisschen besser aus als ich kannst du mir den nicht einfach nur die paar zeilen posten die ich benötige damit ich mein directory auswählen kann? bitte vielen dank |
Re: HTTP Server Home Directory Auswählen
Hallo Claudio,
was funktioniert denn nicht an dem Code aus der Demo? Die paar Zeilen, mit denen du dein Directory auswählen kannst - in der Demo wird das Directory einfach in einem Edit erfasst - könnten so aussehen:
Delphi-Quellcode:
FolderDialog ist vom Typ TJvBrowseForFolderDialog, einer Komponente aus der JEDI Sammlung.
type
TMainForm = class(TForm) // ... public WebRoot: String; // ... end; procedure TMainForm.RootButtonClick(Sender: TObject); begin with FolderDialog do if Execute then WebRoot := Directory; end; Wahrscheinlich wäre es besser, wenn du mit einem etwas überschaubareren Projekt anfangen würdest. Man verliert sonst sehr leicht die Eigenmotivation. Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:02 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