AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Webbroker. PageProducer und transparente HTML-Tags
Thema durchsuchen
Ansicht
Themen-Optionen

Webbroker. PageProducer und transparente HTML-Tags

Ein Thema von Delbor · begonnen am 28. Jun 2016 · letzter Beitrag vom 4. Jul 2016
 
nahpets
(Gast)

n/a Beiträge
 
#39

AW: Webbroker. PageProducer und transparente HTML-Tags

  Alt 4. Jul 2016, 18:16
Ok, der Fehler in der Formatanweisung liegt in der Pfadangabe.
Delphi-Quellcode:
Try
   // Die Pfadangabe sollte natürlich konfigurierbar sein.
   // Relative Pfade könnten auch möglich sein.
   // Dann gilt aber: Relativ ausgehend von der Webserver.Exe.
   sFile := Format('E:\DelphiXE8 Corner\DelphiXE8VclCorner\DelborWebserverXE8\DelborDataSnapServer\Images\%s', [Request.QueryFields.Values['Image']]);
Die %20 müssen ein Leerzeichen sein, ansonsten stört das % in der Zeichenfolge.

Wenn die Dateien unterhalb Deiner Applikation liegt, geht aus sowohl mit absoluten, als auch mit relativen Pfaden.

Wenn Du in Deinen Webseiten Urls dieser Art benutzt http://localhost:8080/NameDeinerWebanwendung/Images?Image=Delbor_8.jpg , dann kannst Du in Deinem Programm über Request.QueryFields.Values die Werte abfragen, die sich in der Url hinter dem ? und getrennt durch & befinden.

Wenn Du also im Quelltext die Url http://localhost:8080/NameDeinerWebanwendung/Images?Image=Delbor_8.jpg hast, so musst Du im Quelltext bei der WebModule1WebActImagesAction nur Request.QueryFields.Values['WertVorDemGleichheitszeichen'] abfragen und bekommst den Wertes hinter dem Gleichheitszeichen geliefert, hier im Beispiel also für Image den Wert Delbor_8.jpg, und dieser Wert wird oben in der Formatanweisung in den Pfad zu den Dateien eingefügt.
Funktioniert im Prinzip wie bei Ini-Dateien ...

Damit musst Du nicht mehr in einer endlosen If-Kaskade für jedes Bild eine extra Abfrage mache.

Die folgende Routine sollte also für alle JPeg-Dateien funktionieren, die über eine Url der Form http://localhost:8080/NameDeinerWebanwendung/Images?Image=irgendeindateiname.Endung vom Browser bei Deinem Programm angefordert werden.

Delphi-Quellcode:
// PathInfo: /Images
procedure TWebModule1.WebModule1WebActImagesAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
Var
  fs : tFileStream;
  sFile : String;
begin
  Try
   // Die Pfadangabe sollte natürlich konfigurierbar sein.
   // Relative Pfade könnten auch möglich sein.
   // Dann gilt aber: Relativ ausgehend von der Webserver.Exe.
   sFile := Format('E:\DelphiXE8 Corner\DelphiXE8VclCorner\DelborWebserverXE8\DelborDataSnapServer\Images\%s', [Request.QueryFields.Values['Image']]);
   fs := tFileStream.Create(sFile,fmOpenRead);
   Try
    Response.ContentType := 'image/jpeg';
    Response.SendStream(fs);
    Response.SendResponse;
   Except
     On e : Exception Do Response.Content := '<HTML><BODY>' + e.Message + '</BODY></HTML>';
   End;
  Finally
    fs.Free;
  End;
  Handled := True;
end;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:29 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