我尝试使用prestashop dev's example上传产品图片。
这是我的代码:
$image_path = 'http://www.naminukas.lt/out/pictures/master/straipsniai/thumb/skalbimo_masinos_pelesis.jpg';
$url = 'http://46.101.240.63/api/images/products/198';
$key = 'myapicode';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
//curl_setopt($ch, CURLOPT_PUT, true); // Un-commet to edit an image
curl_setopt($ch, CURLOPT_USERPWD, $key.':');
curl_setopt($ch, CURLOPT_POSTFIELDS, array('image' => '@'.$image_path));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
然后我尝试使用HTML代码上传,它的作品
<form enctype="multipart/form-data" method="POST" action="http://eWURcnNJ6mbLUHB10EEIzTZsTShs33IX@myprestahop.com/api/images/products/1">
<fieldset>
<legend>Add image for products No 1</legend>
<input type="file" name="image">
<input type="submit" value="Execute">
</fieldset>
</form>
但是使用curl并没有收到错误66,无法上传此图片。
你有什么想法吗?
P.S:我使用的是PHP 7.0版本。
答案 0 :(得分:0)
您遇到SSl错误: https://curl.haxx.se/libcurl/c/libcurl-errors.html
尝试添加这些行以忽略证书和ssl相关警告。 curl_setopt($ ch,CURLOPT_SSL_VERIFYHOST,0); curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,0);