Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Prob mit IndyHTTP Server und datei schicken (https://www.delphipraxis.net/50978-prob-mit-indyhttp-server-und-datei-schicken.html)

jonny 3. Aug 2005 17:17


Prob mit IndyHTTP Server und datei schicken
 
Hallo,
kann mir jemand verraten warum ich die Datei die ich mit den Parameter "filename" anfordere nicht im IE zun Download bekomme und stattdessen der IE abschmiert?

Indy9
Delphi 7


Delphi-Quellcode:
procedure TfmHTTPServerMain.HTTPServerCommandGet(AThread: TIdPeerThread;
  RequestInfo: TIdHTTPRequestInfo; ResponseInfo: TIdHTTPResponseInfo);
var
  LocalDoc: string;
begin
...
  If Requestinfo.Params.values['action'] = 'sendmefile' Then
  begin
    If FileExists(Requestinfo.Params.values['filename']) Then
    begin
      LocalDoc:=ExpandFileName(StringReplace(Requestinfo.Params.values['filename'], '\', '/', (rfReplaceAll, rfIgnoreCase]));
      If FileExists(LocalDoc) Then
        HTTPServer.ServeFile(AThread, ResponseInfo, LocalDoc);
      end
      else
      begin
        ResponseInfo.ContentType := 'text/html';
        ResponseInfo.ContentText :=Header + 'Datei nicht gefunden!' + Footer;
      end;
    end;
  end;
...
end;

jonny 5. Aug 2005 23:06

Re: Prob mit IndyHTTP Server und datei schicken
 
Kann mir denn keiner helfen?

vielleicht noch einiges erklärendes zum Programm:
Also es ist ein Programm (HTTPS-Server) auf den ich von überallher zugreifen kann und meinen Rechner verwalten. Ich wollte aber auch eine Funktione haben mit der ich einfach einen Pfad für eine Datei in einen EditFeld auf der Webseite angeben kann und das anschliessend mir der Server die Datei an den Client schickt, zum Download praktisch. Es sind noch einige andere Funktionen drin, aber ich schaffe irgendwie nicht diese mit dem Dateiupload zu realisieren.

Bitte es ist wichtig.

jonny 9. Aug 2005 15:39

Re: Prob mit IndyHTTP Server und datei schicken
 
Habe es jetzt hinbekommen das der der Server die Datei losschickt.

Kann mir jemand sagen wie ich den Dateinamen einer Datei an den Client zum Download schicke? Der Download funktioniert nur das Problem ist das der Dateiname nicht im Speichern Dialog angezeigt wird.

Delphi-Quellcode:
    If RequestInfo.Document = '/do.command' Then
    begin

      If Requestinfo.Params.values['action'] = 'sendmefile' Then
      begin
         If FileExists(Requestinfo.Params.values['filename']) Then
         begin
         
LocalDoc:=ExpandFileName(StringReplace(Requestinfo.Params.values['filename'],
'\', '/', [rfReplaceAll, rfIgnoreCase]));
          If FileExists(LocalDoc) Then
          begin
            try
              ResponseInfo.ContentType:=GetMIMEType(LocalDoc);
              RequestInfo.Document:=ExtractFileName(ChangeFileExt(LocalDoc,
''));
              HTTPServer.ServeFile(AThread, ResponseInfo, LocalDoc);
            finally
              //
            end;
          end;
         end
         else
         begin
          ResponseInfo.ContentType := 'text/html';
          ResponseInfo.ContentText :=Header + 'Datei nicht gefunden!' + Footer;
         end;
      end
...
...
end
else ....
Bekomme immer als dateiname do.command angezeigt, egal welche datei ich herunterlade


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 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