Hallo halinchen,
ich habe dies so gelöst - aber achtung, ich lade in meinem Fall eine Datei hoch.
Du möchtest vermutlich nur einzelne Felder hinzufügen.
Einfach ein wenig reinarbeiten und anpassen. (ja... es wäre auch mit nicht so viel drum herum gegangen ;)
War eine quick and dirty-Implementierung
Ich hoffe geholfen zu haben.
Delphi-Quellcode:
var
FormDataStream : TIdMultiPartFormDataStream;
StringStream: TStringStream;
PostVars: TStringList;
FileStream: TFileStream;
cUrl : string;
cFilename : string;
nIdx : integer;
cOperation,
cValue : string;
IdHTTP : TIdHTTP;
begin
IdHTTP := CreateIdHTTP;
cFilename := FFilename;
PostVars := TStringList.Create;
StringStream := TStringStream.Create('');
FileStream := TFileStream.Create(cFilename, fmOpenRead or fmShareDenyWrite);
FormDataStream := TIdMultiPartFormDataStream.Create;
try
StringStream.CopyFrom(FileStream, FileStream.Size);
// cUrl := 'http://ltwollert/plannerCentralOl/upload_test.php';
cUrl := FUploadURL;
FormDataStream.AddFile('file', cFilename, 'multipart/form-data');
//FormDataStream.AddFormField('description', Filename);
cOperation := 'operation';
cValue := 'appts';
FormDataStream.AddFormField(cOperation, cValue);
//FormDataStream.AddFormField('operation', 'appts');
FHttpResult := IdHTTP.Post(cUrl, FormDataStream);;
finally
StringStream.Free;
PostVars.Free;
FileStream.Free;
FormDataStream.Free;
end;
end;
Grüße
Michael