Garfield: PHP | CURL und Bild im Body schicken

Hallo,

ich habe ein Problem. Denn ich möchte ein Bild via CURL übergeben/hochladen. Die Gegenseite schreibt mir [...]image style transfer expect JPEG image raw bytes in body of HTTP request without any kind of form encodings[...].

Nun habe ich mich durchversucht. Und angefangen das Bild mit dem PHP Script via file_get_contens ein zu lesen. Dann starte ich CURL und setze im httpheader die Information für ein Bild. Nur wie packe ich das Bild in den Body?

$img_url = "beispiel.jpg";
$img_data = file_get_contents($img_url);

$sURL = "https://test.beispiel.com";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $sURL); 
curl_setopt($ch, CURLOPT_TIMEOUT, '10'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(  
	'Content-Type: image/jpeg'
));
$content = curl_exec($ch);
  1. Nächster Versuch. Ich glaube sehe den Wald wohl vor lauter Bäumen nicht mehr...

    $img_url = "beispiel.jpg";
    $img_data = file_get_contents($img_url);
    
    $sURL = "https://api.beispiel.com/";
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $sURL); 
    //image(start)
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
    curl_setopt($ch, CURLOPT_POSTFIELDS, $img_data);  
    //image(end)
    curl_setopt($ch, CURLOPT_TIMEOUT, '10'); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(  
    	'Content-Type: image/jpeg'
    ));
    $content = curl_exec($ch);
    
    
    1. Hi,

      Sieht mir nach einem Fall für curl_file_create aus.

      cu,
      Andreas a/k/a MudGuard

      1. Hi,

        es lag daran, das die Gegenseite noch eine zusätzliche Headerinformation bräuchte um das Bild auch an zu nehmen.

  2. Hi,

    ... Nur wie packe ich das Bild in den Body?

    Ganz einfach: Die Binary mit Request-Method PUT. MfG