2016-06-12 8 views
1

Ich bin ein Bild an den Server eines sozialen Netzwerks mit curl gesendet. Der folgende Code funktioniert gut, wenn ich den Link auf das Bild in $ post_params Variable setze. Ich versuche, dasselbe mit base64-kodiertem Bild zu machen und base64-Code in $ post_params-Variable einzufügen, aber dann funktioniert der Code nicht. Wie kann ich das Problem beheben und base64-Image hochladen?Gesendete base64-Bild an URL mit curl (php)

<?php 
 
    if (isset($_POST["upload_url"])) { 
 
     
 
     $upload_url = $_POST["upload_url"]; 
 
     
 
     $post_params['photo'] = '@' . 'image.jpg'; // link 
 
     
 
     $ch = curl_init(); 
 
     curl_setopt($ch, CURLOPT_URL, $upload_url); 
 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
 
     curl_setopt($ch, CURLOPT_POST, true); 
 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $post_params); 
 
     $result = curl_exec($ch); 
 
     curl_close($ch); 
 
     
 
     echo $result; 
 
     
 
    } 
 
    ?>

+0

Gibt es einen bestimmten Grund, warum Sie es zu Base64 codieren müssen? Sie können das Bild einfach senden. Siehe [hier] (http://stackoverflow.com/questions/3433542/curl-php-send-image). – Andrew

+0

@Andrew der Punkt ist, dass ich dieses Bild nur als base64 oder HTMLImageElement js Objekt nach dem Generieren von Canvas erhalten kann –

Antwort

0

Ich versuche, das gleiche mit Base64-codierten Bild zu tun und Base64-Code in $ post_params Variable einfügen, aber dann wird der Code nicht funktioniert.

Wie funktioniert es nicht? Haben Sie versucht, etwas wie runscope oder requestb.in zu verwenden, um zu sehen, wie die gesendete Anfrage aussieht? Sendet der Dienst, den Sie senden, einen beschreibenden Fehler?

Wie kann ich das Problem beheben und base64-Image hochladen?

Die Datei, die Sie senden (image.jpg) ist es eine normale jpg Datei? Oder ist es eine base64 Version der Datei? Wenn die Dienste base64 angeben, erwarten sie als multipart/form-data codierte POST mit einer Datei, die base64 kodiert ist? Das macht wenig Sinn (zumindest für mich).

Meine Vermutung ist, sie wollen das Bild als eine base64 codierte Zeichenfolge. Dazu nehmen Sie einfach den Inhalt Ihrer Datei und führen ihn durch base64_encode(), dann übergeben Sie das als String-Parameter.