Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试使用PHP将图像上载到Prestashop时,curl_exec返回false_Php_Prestashop_Prestashop 1.7 - Fatal编程技术网

尝试使用PHP将图像上载到Prestashop时,curl_exec返回false

尝试使用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

我正在尝试为我的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('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);
?>