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