尝试使用PHP将图像上载到Prestashop时,curl_exec返回false
我正在尝试为我的Prestashop 1.7.5.1商店中的现有产品添加照片。我在上找到了示例代码,并将其更改为包含我的店铺地址和钥匙。我也换了线尝试使用PHP将图像上载到Prestashop时,curl_exec返回false,php,prestashop,prestashop-1.7,Php,Prestashop,Prestashop 1.7,我正在尝试为我的Prestashop 1.7.5.1商店中的现有产品添加照片。我在上找到了示例代码,并将其更改为包含我的店铺地址和钥匙。我也换了线 $args['image']=新文件($image\u path,$image\u mime)到 $args['image']=新文件($image\u path,$image\u mime,'1.jpg') 因为Visual Studio代码突出显示了该文件还需要第三个参数-postname。 这是我的密码: <?php define
$args['image']=新文件($image\u path,$image\u mime)代码>到
$args['image']=新文件($image\u path,$image\u mime,'1.jpg')代码>
因为Visual Studio代码突出显示了该文件还需要第三个参数-postname。
这是我的密码:
<?php
define('DEBUG', true);
$url = 'http://test.my_shop.com';
$key = 'MY_AUTH_KEY';
$psProductId = '2364';
$urlImage = $url.'/api/images/products/'.$psProductId.'/';
$image_path = '/img/1.jpg';
$image_mime = 'image/jpg';
$args['image'] = new CurlFile($image_path, $image_mime, '1.jpg');
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
curl_setopt($ch, CURLOPT_URL, $urlImage);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, $key.':');
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
print("<pre>");
echo '<br>curl_exec <br>';
$data_exec = curl_exec($ch);
var_dump($data_exec);
echo '<br>curl_getinfo <br>';
var_dump(curl_getinfo($ch));
echo '<br>curl_errno <br>';
var_dump(curl_error($ch));
echo '<br>curl_error <br>';
var_dump(curl_error($ch));
print("</pre>");
curl_close($ch);
?>
我不知道我做错了什么。我不知道为什么文档页面上的代码对我来说不起作用。如果有人有任何建议,请发布,谢谢。我先更正了var\u dump(curl\u error($ch))代码>并将其替换为var_dump(curl_errno($ch))代码>。在我运行代码之后,我得到了错误号26
<?php
define('DEBUG', true);
$url = 'http://test.my_shop.com';
$key = 'MY_AUTH_KEY';
$psProductId = '2364';
$urlImage = $url.'/api/images/products/'.$psProductId.'/';
$image_path = 'C:/xampp/htdocs/my_folder/img/1.jpg';
$image_mime = 'image/jpg';
$args['image'] = new CurlFile($image_path, $image_mime, '1.jpg');
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
curl_setopt($ch, CURLOPT_URL, $urlImage);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, $key.':');
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
print("<pre>");
echo '<br>curl_exec <br>';
$data_exec = curl_exec($ch);
var_dump($data_exec);
echo '<br>curl_getinfo <br>';
var_dump(curl_getinfo($ch));
echo '<br>curl_errno <br>';
var_dump(curl_errno($ch));
echo '<br>curl_error <br>';
var_dump(curl_error($ch));
print("</pre>");
curl_close($ch);
?>
我查了一下,发现了这个答案:。我将相对路径更改为完整路径,现在我的代码已完全运行,照片已正确上载。这是我更正的代码:
您的日志显示了什么吗?您正在打印curl\u error()
什么时候应该打印curl\u errno()
@Barmar谢谢您的评论。我更改了我的代码,多亏了这一点,我才能够更正我的代码。我把它贴在我的答案里。可惜curl\u error()
没有显示出来。我猜它只显示来自服务器的错误,而不是本地错误。
curl_errno
int(26)
<?php
define('DEBUG', true);
$url = 'http://test.my_shop.com';
$key = 'MY_AUTH_KEY';
$psProductId = '2364';
$urlImage = $url.'/api/images/products/'.$psProductId.'/';
$image_path = 'C:/xampp/htdocs/my_folder/img/1.jpg';
$image_mime = 'image/jpg';
$args['image'] = new CurlFile($image_path, $image_mime, '1.jpg');
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
curl_setopt($ch, CURLOPT_URL, $urlImage);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, $key.':');
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
print("<pre>");
echo '<br>curl_exec <br>';
$data_exec = curl_exec($ch);
var_dump($data_exec);
echo '<br>curl_getinfo <br>';
var_dump(curl_getinfo($ch));
echo '<br>curl_errno <br>';
var_dump(curl_errno($ch));
echo '<br>curl_error <br>';
var_dump(curl_error($ch));
print("</pre>");
curl_close($ch);
?>