Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.445 Beiträge
 
Delphi 12 Athens
 
#4

AW: TRestClient UploadFile vs PHP

  Alt 10. Feb 2022, 10:45
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat