Einzelnen Beitrag anzeigen

ele

Registriert seit: 18. Feb 2009
129 Beiträge
 
Delphi 2010 Professional
 
#17

Re: TCP-Server als Web-Server (Datein senden)

  Alt 11. Mai 2010, 17:24
Du solltest dich einwenig mit den HTTP Grundlagen beschäftigen...

Zitat:
Mit [img]Bild.jpg[/img] sendet man ja ein Bild hoch.
Stimmt z.B. überhaut nicht. Damit referenzierst du ein Bild in deiner HTML-Datei, da wird nichts hochgesendet oder runtergeladen.

Das liefern von Dateien über einen TidHTTPServer ist eigentlich ganz einfach:

Die Komponente TIdHTTPServer besitzt im wesentlichen eine wichtiges Ereignis: OnCommandGet

1) In diesem Ereignis wertest du die Adresse in ARequestInfo.Document aus und lieferst je nachdem andere Daten.

2) Du setzt AResponseInfo.ContentType auf einen Sinvollen Wert. Für jpg-Dateien wäre das z.B. 'image/jpeg'.

3) Du setzt den Inhalt der HTTP-Response entweder in AResponseInfo.ContentText (String) oder gleich AResponseInfo.ContentStream mit einem FileStream auf deine Datei:

Delphi-Quellcode:
procedure TMyMainForm.OnCommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
  if SameText(ARequestInfo.Document, '/bild.jpg') then
  begin
    AResponseInfo.ContentType := 'image/jpeg';
    AResponseInfo.ContentStream := TFileStream.Create('bild.jpg', fmCreate);
  end;
end;
Der Rest is Fleissarbeit und Internet-Recherche. Es empfiehlt sich schwer zu verstehen was bei HTTP überhaupt abgeht. Wikipedia und Google sind deine Freunde.
  Mit Zitat antworten Zitat