Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Formular ausfüllen u. abschicken (https://www.delphipraxis.net/82238-formular-ausfuellen-u-abschicken.html)

Crishnu 9. Dez 2006 08:46


Formular ausfüllen u. abschicken
 
Hallo!

Ich habe ein Problem mit der indy Komponente, konkret will ich dieses Formular mit der indy http Komponente ausfüllen, abschicken und die zurückgegebene html Seite auswerten:

Code:
<form action="test.php" enctype="multipart/form-data" method="post">
<input type="file" name="datei"> <input type="submit" value="Los">
Ich hab schon hier im Forum gesucht, aber leider nichts passendes gefunden.
Bin für jede Hilfe dankbar.

MFG

DocBorn 9. Dez 2006 10:08

Re: Formular ausfüllen u. abschicken
 
Liste der Anhänge anzeigen (Anzahl: 1)
ich bin gerade nicht sicher, was die indys so können, aber ich denke mal du willst nicht wirklich das Formular (in irgendeinem Browser o.Ä.) ausfüllen sondern die URL so aufrufen als hättest du das Formular aufgerufen. Wenn dem so ist dann musst du folglich einen POST-Request machen (method=post"), des weiteren willst du hier ja auchnoch eine Datei mitschicken und dazu muss das Formular noch encodiert werden. Genau das gleiche Problem habe ich vor einer Weile auch mal gelöst *such*
Also dazu erstmal die MsMultiPartFormData.pas einbinden (Anhang) und dann kannst du was in dem Stil machen:

Delphi-Quellcode:
var
  MultiPartFormDataStream: TMsMultiPartFormDataStream;
  HttpServer, Response: String;
begin

  // Objekte instanzieren
  MultiPartFormDataStream := TMsMultiPartFormDataStream.Create;

  try
      // Content-Type bestimmen
      httpMain.Request.ContentType := MultiPartFormDataStream.RequestContentType;

      // andere Formular-Felder übergeben
      MultiPartFormDataStream.AddFormField('EinAnderesFeld', 'dadum');

      // Datei laden
      MultiPartFormDataStream.AddFile('datei', 'C:\autoexec.bat', '');

      // Anfrage vorbereiten
      MultiPartFormDataStream.PrepareStreamForDispatch; { You must make sure you call this method *before* sending the stream }
      MultiPartFormDataStream.Position := 0;

      try

        // Anfrage stellen
        Response := httpMain.Post('http://www.microsoft.com/test.php, MultiPartFormDataStream);

      except
        // Upload fehlgeschlagen
      end;
    end;
  finally
    MultiPartFormDataStream.Free;
  end;
end;
viel Erfolg.

Lg Lars

Crishnu 9. Dez 2006 11:59

Re: Formular ausfüllen u. abschicken
 
Ok, werds versuchen

Danke

Edit: funktioniert 1 a


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 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 by Thomas Breitkreuz