我无法添加图像Web Service Prestashop

时间:2016-04-18 10:31:29

标签: php web-services prestashop-1.6

当我尝试将图像添加到产品时,我没有收到任何错误,但图像没有添加。

这是我的代码:

 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>'; 

        }

我还对PSWebServiceLibrary.php进行了更改,因为Prestashop Web Service API一直要求进行身份验证。这是我获得代码Prestashop Web Service API keeps asking for authentication的链接。

这是我添加的代码:

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

问题是在我在PSWebServiceLibrary.php上进行更改之前添加图像的代码是有效的,我不知道如何解决它。 我正在使用prestashop 1.6.1.5

任何帮助将不胜感激。

问候!

2 个答案:

答案 0 :(得分:2)

我认为这只是缺少“?”在你的网址。

如果我按照您的$ url逻辑,结果将是ID为1234567的产品示例: http://192.168.1.81/api/images/products/1234567&ws_key=ZOEJFD3429JD209AZJX0DJF20

所以你的服务器等待这个url hanlde ws_key作为GET参数: http://192.168.1.81/api/images/products/1234567?ws_key=ZOEJFD3429JD209AZJX0DJF20

你需要添加这个“?”在你的URL末尾像这样:

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

最诚挚的问候,

TGA

答案 1 :(得分:2)

对我来说是这样的:

curl_setopt($ ch,CURLOPT_POSTFIELDS,array('image'=&gt; curl_file_create($ image_path)));