当我尝试将图像添加到产品时,我没有收到任何错误,但图像没有添加。
这是我的代码:
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
任何帮助将不胜感激。
问候!
答案 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)));