2016-04-18 5 views
1

Wenn ich versuche, ein Bild zu einem Produkt hinzuzufügen, erhalte ich keine Fehler, aber das Bild wird nicht hinzugefügt.Ich kann kein Bild hinzufügen Web Service Prestashop

Dies ist mein Code:

function addImage($idProduct) 
     { 

      $key = 'XXXXXXXXXXXXXXXXXXX'; 
      $url = "http://192.168.1.81/api/images/products/".$idProduct; 
      $image_path = 'image2.jpg'; 

      $ch = curl_init(); 
      curl_setopt($ch, CURLOPT_URL, $url); 
      curl_setopt($ch, CURLOPT_POST, true); 
      curl_setopt($ch, CURLOPT_USERPWD, $key); 
      curl_setopt($ch, CURLOPT_POSTFIELDS, array('image' => '@'.$image_path.';type=image/jpg')); 
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
      $result = curl_exec($ch); 
      curl_close($ch); 

      echo '<h2>Image Added</h2>'; 

     } 

Ich habe auch eine Veränderung auf PSWebServiceLibrary.php, weil Prestashop Web Service API für die Authentifizierung immer wieder zu fragen. Dies ist der Link, wo ich den Code Prestashop Web Service API keeps asking for authentication bekam.

Dies ist der Code, den ich hinzugefügt:

 $url .= '&ws_key=' . $this->key; 

Das Problem ist, dass der Code ein Bild hinzufügen arbeitete, bevor ich auf PSWebServiceLibrary.php diese Änderung vorgenommen hat, und ich weiß nicht, wie es zu lösen . Ich verwende Prestashop 1.6.1.5

Jede Hilfe wird geschätzt.

Grüße!

Antwort

2

Ich denke, es ist nur ein Fehlen von "?" in deiner URL.

Wenn ich Ihre $ url Logik das Ergebnis folgen wird für das Produkt von ID 1234567 mit gutem Beispiel sein: http://192.168.1.81/api/images/products/1234567&ws_key=ZOEJFD3429JD209AZJX0DJF20

So Ihr Server diese URL wartet als GET-Parameter hanlde ws_key: http://192.168.1.81/api/images/products/1234567?ws_key=ZOEJFD3429JD209AZJX0DJF20

Sie benötigen um dieses "?" am Ende Sie URL wie folgt:

$url = "http://192.168.1.81/api/images/products/".$idProduct."?"; 

Mit besten Grüßen,

TGA

+0

Es funktioniert nicht, aber danke für die Beantwortung! –

+0

Ich suchte letzte 2 Tage nach Lösung und es funktioniert wie Charme !! Danke, +1 Von meiner Seite –

1

Für mich funktioniert wie folgt:

curl_setopt ($ ch, CURLOPT_POSTFIELDS, array ('Bild' => curl_file_create ($ image_path)));

+0

Vielen Dank! – vosicz