Der Code ist etwas verworren. Mal heißt es
Request, dann wieder
FRESTRequest. Offenbar fehlen auch einige wesentliche Dinge, dafür sind andere überflüssig.
Die Zuweisung an
FRESTClient.ContentType:= 'multipart/form-data';
ist überflüssig. Das
TCustomRESTRequest.Execute
setzt diesen Wert automatisch anhand der vorhandenen Parameter und deren ContentType.
Als straight forward würde ich das erstmal so versuchen (der Code bildet im Prinzip das JavaScript ab):
Delphi-Quellcode:
client := TRESTClient.Create('
http://myServer.tld/API.php');
try
request := TRESTRequest.Create(client);
// spart das try-finally-Free
request.Client := client;
request.Method := rmPOST;
request.AddParameter('
action', '
uploadfile', pkQUERY);
request.AddParameter('
iddatei', dateiID, pkQUERY);
request.AddParameter('
version', version, pkQUERY);
request.AddParameter('
filename', filename, pkQUERY);
request.AddFile(filename);
// setzt implizit ctMULTIPART_FORM_DATA
request.Execute;
if request.Response.Status.Success
then begin
{ hat geklappt }
end
else begin
{ hat nicht geklappt }
end;
finally
client.Free;
end;
Wenn das nicht funktioniert müsste man mal die genaue Spezifikation vom Server studieren.