Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi HTTP Server Home Directory Auswählen (https://www.delphipraxis.net/73990-http-server-home-directory-auswaehlen.html)

hedie 26. Jul 2006 14:00


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

marabu 26. Jul 2006 16:01

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

hedie 27. Jul 2006 11:13

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

marabu 27. Jul 2006 11:21

Re: HTTP Server Home Directory Auswählen
 
Hier ist der Link: Indy Demos

Grüße vom marabu

hedie 27. Jul 2006 11:24

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

marabu 27. Jul 2006 11:33

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

hedie 27. Jul 2006 13:08

Re: HTTP Server Home Directory Auswählen
 
ich konnte nur diesen code finden

Delphi-Quellcode:
// 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;
aber der geht nicht

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

marabu 27. Jul 2006 18:14

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:
type
  TMainForm = class(TForm)
// ...
  public
    WebRoot: String;
// ...
  end;

procedure TMainForm.RootButtonClick(Sender: TObject);
begin
  with FolderDialog do
    if Execute then
      WebRoot := Directory;
end;
FolderDialog ist vom Typ TJvBrowseForFolderDialog, einer Komponente aus der JEDI Sammlung.

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 18:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz